Risposte:
Penso che questo potrebbe essere quello che stai cercando http://wiki.apache.org/httpd/RunningMultipleApacheInstances
Per riferimento al contenuto nel link sopra
1) Installa Apache sul tuo server
sudo apt-get install apache2
sudo apt-get install libapache2-mod-perl2
sudo apt-get install other-lib-mods-needed
2) Configurare configurazioni apache separate per ogni istanza che si desidera eseguire
Per Ubuntu, questo dovrebbe essere in / etc / apache2 Essenzialmente per ogni istanza che devi ascoltare su una porta diversa.
# 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
In questo esempio, ci sarebbero 4 diverse istanze in esecuzione, ognuna elaborando un diverso tipo di modulo, ovvero uno per perl, uno per python, ecc.
Ora, devi anche configurare gli host virtuali nell'istanza proxy, in modo che ogni volta che arriva una richiesta per il server DAV sovversione, venga passata al tuo apache 'python-dav', mentre le richieste per il tuo blog wordpress vengono passate al tuo ' php 'istanza apache. Modifichiamo di nuovo "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) testare tutto Quindi abbiamo terminato la configurazione e ora dobbiamo avviare tutte le istanze di apache e testare che tutto funzioni come previsto. Ovviamente puoi farlo usando 'apachectl', ad es
/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) Configurare gli script init per avviare apache con il file di configurazione appropriato
La risorsa collegata ha maggiori dettagli sulla modifica del file rc.conf per questo, ma tocca specificamente la gestione di Ubuntu, quindi entrambe queste sezioni che metterò in evidenza di seguito.
Il '/etc/rc.conf' in FreeBSD è il file principale contenente la configurazione del sistema> informazioni. Questo file viene letto dopo l'avvio del kernel e serve per avviare servizi,> demoni, impostare interfacce di rete, ecc. Per la nostra ricetta abiliteremo il server apache>, elencando le istanze (profili) disponibili, i loro file di configurazione e > dire a FreeBSD quale di questi deve essere eseguito (abilitato) dopo l'avvio del sistema.
# /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"
Quando questi profili sono configurati in /etc/rc.conf e abilitati, verranno avviati> dopo aver avviato correttamente il sistema. Se vuoi dichiarare un profilo ma vuoi solo> avviare manualmente l'istanza apache corrispondente, puoi semplicemente modificare '/etc/rc.conf' e> dire, ad esempio:
# the apache php instance
apache22_php_configfile="/usr/local/etc/apache22/httpd-php.conf"
apache22_php_enable="NO"
Successivamente, puoi avviare / arrestare manualmente qualsiasi istanza di apache usando solo il nome del profilo> (proxy, perl, python, php), in questo modo:
/usr/local/etc/rc.d/apache22 start php
/usr/local/etc/rc.d/apache22 stop perl
...
3b) per Ubuntu
Non sono sicuro che questo sarà simile (e indolore) come nel caso di FreeBSD (vedi la sezione su rc.conf sopra). Gli script apache rc installati con la porta apache in FreeBSD sono consapevoli della possibilità di profili diversi da anni.
Recentemente, gli script di Ubuntu / Debian (ad es. /Etc/init.d/apache2) sono stati aggiornati per supportare più istanze di apache (ad es. Configurazioni multiple, denominate / etc / apache2- $ SUFFIX). A seconda del rilascio di Ubuntu / Debian che stai usando, potresti essere fortunato ... o no.
La funzione è apparsa in Debian nella versione 2.2.14-6 nel febbraio 2010: http://lists.alioth.debian.org/pipermail/pkg-apache-commits/2010-February/000295.html
In Ubuntu, i pacchetti apache2 in Maverick (10.10) contengono queste patch: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.16-1ubuntu3.1/changelog
Tuttavia, Apache2 Lucid (10.04, Long Term Support Release) apparentemente non lo fa: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.14-5ubuntu8.4/changelog
La documentazione è disponibile in /usr/share/doc/apache2/README.multiple-instances
Grazie per la risposta dettagliata, ma in seguito ho trovato questo link http://someofmylearnings.wordpress.com/2011/07/02/multiple-apache2-instances-on-ubuntu/ La procedura mostrata in questo semplicissimo.
Quando installiamo Apache, c'è un /usr/share/doc/apache2.2-common/README.multiple-instancesfile che ti dà un'idea di cosa esattamente deve essere fatto per creare un'istanza di Apache.
All'interno della stessa directory c'è una examplesdirectory che contiene uno script chiamato setup-instanceche possiamo usare per creare un'istanza di Apache. Quindi, per creare un'altra istanza di Apache tutto ciò che deve essere fatto è:
sh /usr/share/doc/apache2.2-common/examples/setup-instance web-server1
dove web-server1è un suffisso. Cioè, aggiunge "apache2-" per impostazione predefinita al nome dell'istanza.
Ciò creerà una nuova directory /etc/apache-web-server1che contiene tutti i file di configurazione. Creerebbe anche /etc/init.d/apache-web-server1che è possibile utilizzare per avviare la nuova istanza di Apache.