Comment puis-je exécuter deux instances d'Apache sur le même système et commencer et les arrêter de manière indépendante les unes des autres. Toute aide ou paradis est appréciée.
Je pense que cela pourrait être ce que vous recherchez http://wiki.apache.org/httpd/runningmultipléapétapes
Pour référence du contenu dans la liaison 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 Séparez Apache 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 autre port.
# 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, chaque traitement de type module différent, c'est-à-dire un pour Perl, un pour python, etc.
Maintenant, vous devez également configurer les hôtes virtuels de l'instance de proxy, de sorte que chaque fois qu'une demande est livrée pour le serveur DAV Subversion, elle est transmise à votre Apache 'Python-Dav', alors que les demandes de votre wordpress Blog est transmis à votre instance d'apache 'php'. Éditez à nouveau 'httpd-proxy.conf' à nouveau:
# 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) Testez tout Nous avons donc terminé avec la configuration et nous devons maintenant lancer toutes les instances Apache et tester que tout fonctionne comme prévu. . Bien sûr, vous pouvez le faire en utilisant 'Apachectl', par ex.
/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 init pour démarrer Apache avec le fichier de configuration approprié
La ressource liée a plus de détails sur la modification du fichier rc.conf pour cela, mais touche spécifiquement avec le traitement de Ubuntu, de sorte que ces deux sections, je souligne ci-dessous.
"/Etc/rc.conf" dans FreeBSD est le fichier maître contenant la configuration système> Informations. Ce fichier est lu après le démarrage du noyau et sert à lancer des services,> Daemons, configurez des interfaces réseau, etc. Pour notre recette, nous permettrons au serveur Apache> Listing des instances disponibles (profils), leurs fichiers de configuration et > Teller FreeBSD Laquelle de ces personnes doit être exécutée (activée) après avoir démarré le 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é, ils seront démarrés> après avoir démonté avec succès le système. Si vous souhaitez déclarer un profil, mais vous ne voulez que> pour démarrer l'instance Apache correspondante manuellement, vous pouvez simplement modifier '/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 toute instance Apache à l'aide du nom du 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 cela 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 à FreeBSD ont été conscients de la possibilité de différents profils depuis des années.
Récemment, les scripts Ubuntu/Debian Init (par exemple /etc/init.d/apache2) ont été mis à jour pour prendre en charge plusieurs instances d'Apache (E.G. Plusieurs configurations, nommées/etc/Apache2- $ suffixe). Selon la sortie d'Ubuntu/Debian, vous utilisez, vous pouvez avoir une chance ... ou non.
La fonctionnalité est apparue à Debian dans la version 2.2.14-6 à février 2010: http://lists.alioth.debian.org/pipermail/pkg-apache-commits/2010-fèbre/000295.html
Dans Ubuntu, les paquets Apache2 dans Maverick (10.10) contiennent ces correctifs: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.16-1ubuntu3.2.changelog Englisons
Cependant, la libération de soutien lucide (10,04, longue durée) Apache2 n'a 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.multiples-Instances