Jawaban:
Saya pikir ini mungkin yang Anda cari http://wiki.apache.org/httpd/RunningMultipleApacheInstances
Untuk referensi konten di tautan di atas
1) Instal Apache di server Anda
sudo apt-get install apache2
sudo apt-get install libapache2-mod-perl2
sudo apt-get install other-lib-mods-needed
2) Konfigurasikan konfigurasi apache terpisah untuk setiap instance yang ingin Anda jalankan
Untuk Ubuntu, ini harus di / etc / apache2 Pada dasarnya untuk setiap instance Anda perlu mendengarkan pada port yang berbeda.
# 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
Dalam contoh ini, akan ada 4 instance berbeda yang berjalan, masing-masing memproses tipe modul yang berbeda, yaitu satu untuk perl, satu untuk python, dll.
Sekarang, Anda juga perlu mengonfigurasi host virtual dalam instance proxy, sehingga setiap kali ada permintaan untuk server DAV subversi, ia akan diteruskan ke apache 'python-dav' Anda, sedangkan permintaan untuk blog wordpress Anda diteruskan ke ' contoh apache php '. Mari kita edit lagi '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) menguji semuanya Jadi kita sudah selesai dengan konfigurasi, dan sekarang kita perlu meluncurkan semua instance apache, dan menguji bahwa semuanya berfungsi seperti yang diharapkan. Tentu saja Anda dapat melakukan ini menggunakan 'apachectl', mis
/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) Konfigurasikan skrip init untuk memulai apache dengan file konfigurasi yang sesuai
Sumber daya yang ditautkan memiliki detail lebih lanjut tentang mengedit file rc.conf untuk ini tetapi menyentuh secara khusus berkaitan dengan Ubuntu jadi saya kedua bagian ini akan saya soroti di bawah ini.
'/Etc/rc.conf' di FreeBSD adalah file master yang berisi informasi konfigurasi sistem>. File ini dibaca setelah mem-boot kernel, dan berfungsi untuk meluncurkan layanan,> daemon, mengatur antarmuka jaringan, dll. Untuk resep kami, kami akan mengaktifkan apache> server, daftar instance yang tersedia (profil), file konfigurasi mereka, dan > memberi tahu FreeBSD yang mana yang perlu dijalankan (diaktifkan) setelah mem-boot sistem.
# /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"
Ketika profil ini dikonfigurasikan di /etc/rc.conf, dan diaktifkan, profil akan dimulai> setelah berhasil mem-boot sistem. Jika Anda ingin mendeklarasikan profil tetapi Anda hanya ingin> memulai instance apache yang sesuai secara manual, Anda bisa mengedit '/etc/rc.conf' dan> katakan, misal:
# the apache php instance
apache22_php_configfile="/usr/local/etc/apache22/httpd-php.conf"
apache22_php_enable="NO"
Kemudian, Anda dapat memulai / menghentikan instance apache secara manual menggunakan hanya nama profil> (proxy, perl, python, php), seperti ini:
/usr/local/etc/rc.d/apache22 start php
/usr/local/etc/rc.d/apache22 stop perl
...
3b) untuk Ubuntu
Saya tidak yakin ini akan serupa (dan tidak menyakitkan) seperti dalam kasus FreeBSD (lihat bagian tentang rc.conf di atas). Skrip rc apache yang diinstal dengan port apache di FreeBSD telah menyadari kemungkinan profil yang berbeda selama bertahun-tahun sekarang.
Baru-baru ini, skrip init Ubuntu / Debian (mis. /Etc/init.d/apache2) telah diperbarui untuk mendukung banyak instance dari apache (mis. Beberapa konfigurasi, bernama / etc / apache2- $ SUFFIX). Bergantung pada rilis Ubuntu / Debian yang Anda gunakan, Anda mungkin beruntung ... atau tidak.
Fitur ini muncul di Debian dalam versi 2.2.14-6 di Februari 2010: http://lists.alioth.debian.org/pipermail/pkg-apache-commits/2010-February/000295.html
Di Ubuntu, paket apache2 di Maverick (10.10) berisi tambalan ini: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.16-1ubuntu3.1/changelog
Namun apache2 Lucid (10.04, Long Term Support Release) tampaknya tidak: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_ap.22/apache2_2.2.14-5ubuntu8.4/changelog
Dokumentasi dapat ditemukan di /usr/share/doc/apache2/README.multiple-instances
Terima kasih atas jawaban terperinci Anda, tetapi kemudian saya menemukan tautan ini http://someofmylearnings.wordpress.com/2011/07/02/multiple-apache2-inances-on-ubuntu/ Prosedur yang ditunjukkan dalam ini sangat sederhana.
Ketika kami menginstal Apache, ada /usr/share/doc/apache2.2-common/README.multiple-instances
file yang Anda berikan ide tentang apa yang sebenarnya perlu dilakukan untuk membuat instance Apache.
Di dalam direktori yang sama ada examples
direktori yang berisi skrip bernama setup-instance
yang dapat kita gunakan untuk membuat instance Apache. Jadi, untuk membuat instance Apache lain yang perlu dilakukan adalah:
sh /usr/share/doc/apache2.2-common/examples/setup-instance web-server1
dimana web-server1
akhiran. Artinya, ini menambahkan "apache2-" secara default ke nama instance Anda.
Itu akan membuat direktori baru /etc/apache-web-server1
yang berisi semua file konfigurasi. Itu juga akan membuat /etc/init.d/apache-web-server1
yang dapat Anda gunakan untuk memulai instance Apache baru.