Réponses:
Je pense que c'est peut-être ce que vous recherchez http://wiki.apache.org/httpd/RunningMultipleApacheInstances
Pour référence du contenu dans le lien ci-dessus
1) Installez Apache sur votre serveur
sudo apt-get install apache2
sudo apt-get install libapache2-mod-perl2
sudo apt-get install other-lib-mods-needed
2) Configurez des configurations Apache distinctes pour chaque instance que vous souhaitez exécuter
Pour Ubuntu, cela devrait être dans / etc / apache2 Essentiellement pour chaque instance que vous devez écouter sur un port différent.
# 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
Dans cet exemple, il y aurait 4 instances différentes en cours d'exécution, chacune traitant un type de module différent, c'est-à-dire une pour perl, une pour python, etc.
Maintenant, vous devez également configurer les hôtes virtuels dans l'instance de proxy, de sorte que chaque fois qu'une demande arrive pour le serveur subversion DAV, elle soit transmise sur votre apache 'python-dav', tandis que les demandes pour votre blog wordpress sont transmises à votre ' php 'instance apache. Modifions à nouveau '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) tout tester Nous avons donc terminé la configuration, et maintenant nous devons lancer toutes les instances d'apache, et tester que tout fonctionne comme prévu. Bien sûr, vous pouvez le faire en utilisant 'apachectl', par exemple
/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) Configurez les scripts d'initialisation pour démarrer apache avec le fichier de configuration approprié
La ressource liée a plus de détails sur l'édition du fichier rc.conf pour cela, mais touche spécifiquement à la gestion d'Ubuntu, je vais donc mettre en évidence ces deux sections ci-dessous.
'/Etc/rc.conf' dans FreeBSD est le fichier maître contenant la configuration du système> les informations. Ce fichier est lu après le démarrage du noyau et sert à lancer des services,> des démons, à configurer des interfaces réseau, etc. Pour notre recette, nous allons activer le serveur apache>, répertoriant les instances disponibles (profils), leurs fichiers de configuration et > dire à FreeBSD lesquels doivent être exécutés (activés) après le démarrage du système.
# /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"
Lorsque ces profils sont configurés dans /etc/rc.conf et activés, ils seront démarrés> après un démarrage réussi du système. Si vous voulez déclarer un profil mais que vous voulez> démarrer manuellement l'instance Apache correspondante, vous pouvez simplement éditer '/etc/rc.conf' et> dire, par exemple:
# the apache php instance
apache22_php_configfile="/usr/local/etc/apache22/httpd-php.conf"
apache22_php_enable="NO"
Plus tard, vous pouvez démarrer / arrêter n'importe quelle instance Apache manuellement en utilisant uniquement le nom de profil> (proxy, perl, python, php), comme ceci:
/usr/local/etc/rc.d/apache22 start php
/usr/local/etc/rc.d/apache22 stop perl
...
3b) pour Ubuntu
Je ne suis pas sûr que ce sera similaire (et indolore) comme dans le cas de FreeBSD (voir la section sur rc.conf ci-dessus). Les scripts apache rc installés avec le port apache dans FreeBSD sont conscients de la possibilité de différents profils depuis des années.
Récemment, les scripts d'initialisation Ubuntu / Debian (par exemple /etc/init.d/apache2) ont été mis à jour pour prendre en charge plusieurs instances d'Apache (par exemple, plusieurs configurations, nommées / etc / apache2- $ SUFFIX). Selon la version d'Ubuntu / Debian que vous utilisez, vous aurez peut-être de la chance ... ou pas.
La fonctionnalité est apparue dans Debian dans la version 2.2.14-6 en février 2010: http://lists.alioth.debian.org/pipermail/pkg-apache-commits/2010-F February/000295.html
Dans Ubuntu, les packages apache2 dans Maverick (10.10) contiennent ces correctifs: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.16-1ubuntu3.1/changelog
Cependant, l'apache2 Lucid (10.04, Long Term Support Release) ne le fait apparemment pas: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.14-5ubuntu8.4/changelog
La documentation peut être trouvée dans /usr/share/doc/apache2/README.multiple-instances
Merci pour votre réponse détaillée mais plus tard, j'ai trouvé ce lien http://someofmylearnings.wordpress.com/2011/07/02/multiple-apache2-instances-on-ubuntu/ La procédure indiquée dans ce très simple.
Lorsque nous installons Apache, il y a un /usr/share/doc/apache2.2-common/README.multiple-instances
fichier qui vous donne une idée de ce qui doit être fait exactement pour créer une instance Apache.
À l'intérieur du même répertoire, il y a un examples
répertoire qui contient un script nommé setup-instance
que nous pouvons utiliser pour créer une instance Apache. Donc, pour créer une autre instance Apache, tout ce qui doit être fait est:
sh /usr/share/doc/apache2.2-common/examples/setup-instance web-server1
où web-server1
est un suffixe. Autrement dit, il ajoute «apache2-» par défaut au nom de votre instance.
Cela va créer un nouveau répertoire /etc/apache-web-server1
qui contient tous les fichiers de configuration. Il créerait également /etc/init.d/apache-web-server1
que vous pouvez utiliser pour démarrer la nouvelle instance Apache.