Yanıtlar:
Bence bu http://wiki.apache.org/httpd/RunningMultipleApacheInstances aradığınız şey olabilir
Yukarıdaki linkteki içeriğe referans için
1) Apache'yi sunucunuza yükleyin
sudo apt-get install apache2
sudo apt-get install libapache2-mod-perl2
sudo apt-get install other-lib-mods-needed
2) Çalıştırmak istediğiniz her örnek için ayrı apache yapılandırmaları yapılandırın
Ubuntu için bu / etc / apache2 içinde olmalıdır. Temelde farklı bir bağlantı noktasında dinlemeniz gereken her örnek için.
# 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
Bu örnekte, her biri farklı bir modül türünü işleyen 4 farklı örnek olacaktır, yani perl için bir, python için bir vb.
Şimdi, proxy örneğindeki sanal ana bilgisayarları da yapılandırmanız gerekir, böylece alt sürüm DAV sunucusu için her istek geldiğinde, 'python-dav' apache'nize iletilirken, wordpress blogunuz için istekleriniz ' php 'apache örneği. 'Httpd-proxy.conf' dosyasını tekrar düzenleyelim:
# 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) her şeyi test edin Bu yüzden yapılandırmayı bitirdik ve şimdi tüm apache örneklerini başlatmamız ve her şeyin beklendiği gibi çalıştığını test etmemiz gerekiyor. Elbette bunu 'apachectl' kullanarak yapabilirsiniz, örn.
/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) Başlangıç komut dosyalarını uygun yapılandırma dosyasıyla apache başlatacak şekilde yapılandırın
Bağlantılı kaynak, bunun için rc.conf dosyasını düzenlemeyle ilgili daha fazla ayrıntıya sahiptir, ancak özellikle Ubuntu ile uğraşırken dokunur, bu yüzden her iki bölümü de aşağıda vurgulayacağım.
FreeBSD'deki '/etc/rc.conf', sistem yapılandırması> bilgilerini içeren ana dosyadır. Bu dosya çekirdeği önyükledikten sonra okunur ve hizmetleri,> cinleri, ağ arayüzlerini vb. > sisteme önyükleme yapıldıktan sonra FreeBSD'ye hangilerinin çalıştırılması (etkinleştirilmesi) gerektiğini söyleme.
# /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"
Bu profiller /etc/rc.conf içinde yapılandırıldığında ve etkinleştirildiğinde, sistem başarıyla başlatıldıktan sonra> başlatılır. Bir profil bildirmek istiyorsanız, ancak yalnızca> ilgili apache örneğini manuel olarak başlatmak istiyorsanız, '/etc/rc.conf' dosyasını düzenleyebilir ve> diyelim, örneğin:
# the apache php instance
apache22_php_configfile="/usr/local/etc/apache22/httpd-php.conf"
apache22_php_enable="NO"
Daha sonra, aşağıdaki profil adını> (proxy, perl, python, php) kullanarak herhangi bir apache örneğini manuel olarak başlatabilir / durdurabilirsiniz:
/usr/local/etc/rc.d/apache22 start php
/usr/local/etc/rc.d/apache22 stop perl
...
3b) Ubuntu için
Bunun FreeBSD örneğinde olduğu gibi benzer (ve ağrısız) olacağından emin değilim (yukarıdaki rc.conf bölümüne bakın). FreeBSD'de apache portu ile kurulan apache rc betikleri yıllardır farklı profillerin olabileceğinin farkında.
Son zamanlarda, Ubuntu / Debian başlangıç komut dosyaları (örn. /Etc/init.d/apache2), birden çok apache örneğini (örneğin / etc / apache2- $ SUFFIX adlı birden çok yapılandırma) desteklemek üzere güncellendi. Kullandığınız Ubuntu / Debian'ın sürümüne bağlı olarak şanslı olabilirsiniz ...
Bu özellik Debian'da Şubat 2010'da 2.2.14-6 sürümünde ortaya çıktı: http://lists.alioth.debian.org/pipermail/pkg-apache-commits/2010-February/000295.html
Ubuntu'da, Maverick'teki (10.10) apache2 paketleri şu yamaları içerir: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.16-1ubuntu3.1/changelog
Ancak Lucid (10.04, Uzun Süreli Destek Sürümü) apache2 görünüşe göre: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.14-5ubuntu8.4/changelog
Belgeleri /usr/share/doc/apache2/README.multiple-instances adresinde bulabilirsiniz.
Ayrıntılı cevabınız için teşekkürler ama daha sonra bu bağlantıyı buldum http://someofmylearnings.wordpress.com/2011/07/02/multiple-apache2-instances-on-ubuntu/ Bu işlem çok basit bir şekilde gösterilmiştir.
Apache'yi yüklediğimizde, /usr/share/doc/apache2.2-common/README.multiple-instances
bir Apache örneği oluşturmak için tam olarak ne yapılması gerektiği hakkında fikir verdiğiniz bir dosya vardır.
Aynı dizinin içinde bir Apache örneği oluşturmak için kullanabileceğimiz examples
bir komut dosyası içeren bir dizin vardır setup-instance
. Yani, başka bir Apache örneği oluşturmak için yapılması gereken tek şey:
sh /usr/share/doc/apache2.2-common/examples/setup-instance web-server1
web-server1
bir sonek nerede . Yani, örnek adınıza varsayılan olarak “apache2-” ekler.
Bu /etc/apache-web-server1
, tüm yapılandırma dosyalarını içeren yeni bir dizin oluşturur. Ayrıca /etc/init.d/apache-web-server1
, yeni Apache örneğini başlatmak için kullanabileceğiniz öğeleri de oluşturacaktır .