回答:
私はこれがあなたが探しているものかもしれないと思う http://wiki.apache.org/httpd/RunningMultipleApacheInstances
上記リンクのコンテンツの参照用
1)サーバーにApacheをインストールします
sudo apt-get install apache2
sudo apt-get install libapache2-mod-perl2
sudo apt-get install other-lib-mods-needed
2)実行するインスタンスごとに個別のApache構成を構成します
Ubuntuの場合、これは/ etc / apache2にある必要があります。本質的には、異なるポートでリッスンする必要がある各インスタンスに対してです。
# httpd-proxy.conf
Listen 80
ErrorLog /var/log/httpd-proxy-error.log
LoadModule proxy_module libexec/apache22/mod_proxy.so
LoadModule proxy_http_module libexec/apache22/mod_proxy_http.so
# httpd-perl.conf
Listen 81
ErrorLog /var/log/httpd-perl-error.log
LoadModule perl_module libexec/apache22/mod_perl.so
# httpd-python.conf
Listen 82
ErrorLog /var/log/httpd-python-error.log
LoadModule python_module libexec/apache22/mod_python.so
# httpd-php.conf
Listen 83
ErrorLog /var/log/httpd-php-error.log
LoadModule php5_module libexec/apache22/libphp5.so
この例では、4つの異なるインスタンスが実行され、それぞれが異なるモジュールタイプを処理します。つまり、perl用、python用などです。
ここで、プロキシインスタンスで仮想ホストを構成する必要もあります。これにより、Subversion DAVサーバーにリクエストが来るたびに 'python-dav' Apacheに渡され、wordpressブログのリクエストは ' php 'Apacheインスタンス。「httpd-proxy.conf」をもう一度編集しましょう。
# httpd-proxy.conf
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /www/wordpress
ServerName blog.company.com
ProxyPass / http://localhost:83/
ProxyPassReverse / http://localhost:83/
[... additional directives here ... ]
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /www/svn
ServerName svn.company.com
ProxyPass / http://localhost:82/
ProxyPassReverse / http://localhost:82/
[... additional directives here ... ]
</VirtualHost>
# you get the idea ...
2b)すべて をテストするこれで構成が完了しました。次に、すべてのApacheインスタンスを起動し、すべてが期待どおりに動作することをテストする必要があります。もちろん、「apachectl」を使用してこれを行うことができます。例えば
/usr/local/sbin/apachectl -f /usr/local/etc/apache22/proxy-httpd.conf configtest
/usr/local/sbin/apachectl -f /usr/local/etc/apache22/proxy-httpd.conf start
/usr/local/sbin/apachectl -f /usr/local/etc/apache22/perl-httpd.conf configtest
/usr/local/sbin/apachectl -f /usr/local/etc/apache22/perl-httpd.conf start
# and so on ...
3)適切な構成ファイルを使用してApacheを起動するようにinitスクリプトを構成します
リンクされたリソースには、このためのrc.confファイルの編集に関する詳細がありますが、Ubuntuの処理に特に関係しているため、これらのセクションの両方を以下で強調します。
FreeBSDの「/etc/rc.conf」は、システム構成情報を含むマスターファイルです。このファイルは、カーネルの起動後に読み込まれ、サービスの起動、デーモン、ネットワークインターフェイスのセットアップなどに役立ちます。 >これらのどれをシステムのブート後に実行する(有効にする)必要があるかをFreeBSDに伝えます。
# /etc/rc.conf
apache22_enable="YES"
apache22_profiles="proxy perl python php"
# the apache proxy instance
apache22_proxy_configfile="/usr/local/etc/apache22/httpd-proxy.conf"
apache22_proxy_enable="YES"
# the apache perl instance
apache22_perl_configfile="/usr/local/etc/apache22/httpd-perl.conf"
apache22_perl_enable="YES"
# the apache python instance
apache22_python_configfile="/usr/local/etc/apache22/httpd-python.conf"
apache22_python_enable="YES"
# the apache php instance
apache22_php_configfile="/usr/local/etc/apache22/httpd-php.conf"
apache22_php_enable="YES"
これらのプロファイルが/etc/rc.confで設定されて有効になっている場合、システムを正常に起動した後に開始されます。プロファイルを宣言したいが、対応するapacheインスタンスを手動で開始したいだけなら、「/ etc / rc.conf」と> sayを編集するだけです。例えば:
# the apache php instance
apache22_php_configfile="/usr/local/etc/apache22/httpd-php.conf"
apache22_php_enable="NO"
後で、プロファイル名>(proxy、perl、python、php)を使用して、次のように任意のapacheインスタンスを手動で開始/停止できます。
/usr/local/etc/rc.d/apache22 start php
/usr/local/etc/rc.d/apache22 stop perl
...
3b)Ubuntuの場合
これがFreeBSDの場合と似ている(そして痛みがない)かどうかはわかりません(上記のrc.confのセクションを参照)。FreeBSDのapacheポートでインストールされたapache rcスクリプトは、何年もの間異なるプロファイルの可能性を認識しています。
最近、Ubuntu / Debianのinitスクリプト(/etc/init.d/apache2など)が更新され、Apacheの複数のインスタンス(たとえば、/ etc / apache2- $ SUFFIXという名前の複数の構成)がサポートされます。使用しているUbuntu / Debianのリリースによっては、幸運かもしれませんが、そうでない場合もあります。
この機能は2010年2月にバージョン2.2.14-6でDebianに登場しました:http ://lists.alioth.debian.org/pipermail/pkg-apache-commits/2010-February/000295.html
Ubuntuでは、Maverick(10.10)のapache2パッケージには次のパッチが含まれています。http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.16-1ubuntu3.1/changelog
しかし、Lucid(10.04、Long Term Support Release)apache2は明らかにそうではありません:http : //changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.14-5ubuntu8.4/changelog
ドキュメントは/usr/share/doc/apache2/README.multiple-instancesにあります。
詳細な回答をありがとうございますが、後でこのリンクを見つけましたhttp://someofmylearnings.wordpress.com/2011/07/02/multiple-apache2-instances-on-ubuntu/この非常にシンプルな手順。
Apacheをインストール/usr/share/doc/apache2.2-common/README.multiple-instances
すると、Apacheインスタンスを作成するために正確に何をする必要があるかを示すファイルがあります。
同じディレクトリ内に、Apacheインスタンスの作成に使用できるexamples
名前のスクリプトを含むディレクトリがありsetup-instance
ます。したがって、別のApacheインスタンスを作成するために必要なことは次のとおりです。
sh /usr/share/doc/apache2.2-common/examples/setup-instance web-server1
where web-server1
はサフィックスです。つまり、デフォルトでインスタンス名に「apache2-」を追加します。
これにより、/etc/apache-web-server1
すべての構成ファイルを含む新しいディレクトリが作成されます。また/etc/init.d/apache-web-server1
、新しいApacheインスタンスを起動するために使用できるものも作成します。