Jak mogę uruchomić dwa wystąpienia apache w tym samym systemie oraz uruchomić i zatrzymać je niezależnie od siebie. Każda pomoc lub wskazówki są mile widziane.
źródło
Jak mogę uruchomić dwa wystąpienia apache w tym samym systemie oraz uruchomić i zatrzymać je niezależnie od siebie. Każda pomoc lub wskazówki są mile widziane.
Myślę, że może to być to, czego szukasz http://wiki.apache.org/httpd/RunningMultipleApacheInstances
Dla odniesienia do treści w powyższym linku
1) Zainstaluj Apache na swoim serwerze
sudo apt-get install apache2
sudo apt-get install libapache2-mod-perl2
sudo apt-get install other-lib-mods-needed
2) Skonfiguruj osobne konfiguracje Apache dla każdej instancji, którą chcesz uruchomić
W przypadku Ubuntu powinien to być plik / etc / apache2 Zasadniczo dla każdej instancji, której potrzebujesz nasłuchiwać na innym porcie.
# 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
W tym przykładzie działałyby 4 różne instancje, każda przetwarzająca inny typ modułu, tj. Jeden dla perla, jeden dla pytona itp.
Teraz musisz także skonfigurować wirtualne hosty w instancji proxy, aby za każdym razem, gdy nadejdzie żądanie subwersyjnego serwera DAV, było ono przekazywane do apache „python-dav”, podczas gdy żądania dotyczące bloga wordpress są przekazywane do twojego „ instancja php 'apache. Zmodyfikujmy ponownie plik „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) testuj wszystko Skończyliśmy konfigurację, a teraz musimy uruchomić wszystkie instancje apache i przetestować, czy wszystko działa zgodnie z oczekiwaniami. Oczywiście możesz to zrobić za pomocą „apachectl”, np
/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) Skonfiguruj skrypty init, aby uruchamiały apache za pomocą odpowiedniego pliku konfiguracyjnego
Połączony zasób zawiera bardziej szczegółowe informacje na temat edycji pliku rc.conf, ale dotyczy konkretnie obsługi Ubuntu, więc obie te sekcje zaznaczę poniżej.
„/Etc/rc.conf” we FreeBSD jest plikiem głównym zawierającym informacje o konfiguracji systemu>. Ten plik jest odczytywany po uruchomieniu jądra i służy do uruchamiania usług,> demonów, konfigurowania interfejsów sieciowych itp. Dla naszego przepisu włączymy apache> serwer, wymieniając dostępne instancje (profile), ich pliki konfiguracyjne i > informowanie FreeBSD, które z nich należy uruchomić (włączyć) po uruchomieniu systemu.
# /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"
Gdy profile te zostaną skonfigurowane w /etc/rc.conf i włączone, zostaną uruchomione> po pomyślnym uruchomieniu systemu. Jeśli chcesz zadeklarować profil, ale chcesz tylko> ręcznie uruchomić odpowiednią instancję Apache, możesz po prostu edytować plik „/etc/rc.conf” i> powiedzieć np .:
# the apache php instance
apache22_php_configfile="/usr/local/etc/apache22/httpd-php.conf"
apache22_php_enable="NO"
Później możesz ręcznie uruchomić / zatrzymać dowolną instancję apache, używając tylko nazwy profilu> (proxy, perl, python, php), w następujący sposób:
/usr/local/etc/rc.d/apache22 start php
/usr/local/etc/rc.d/apache22 stop perl
...
3b) dla Ubuntu
Nie jestem pewien, czy będzie to podobne (i bezbolesne) jak w przypadku FreeBSD (patrz sekcja powyżej rc.conf). Skrypty apache rc zainstalowane z portem apache w FreeBSD od lat zdają sobie sprawę z możliwości istnienia różnych profili.
Ostatnio skrypty inicjujące Ubuntu / Debian (np. /Etc/init.d/apache2) zostały zaktualizowane, aby obsługiwały wiele instancji apache (np. Wiele konfiguracji o nazwie / etc / apache2- $ SUFFIX). W zależności od wersji Ubuntu / Debian, z której korzystasz, możesz mieć szczęście ... lub nie.
Ta funkcja pojawiła się w Debianie w wersji 2.2.14-6 w lutym 2010 r .: http://lists.alioth.debian.org/pipermail/pkg-apache-commits/2010- luty 2014/000295.html
W Ubuntu pakiety apache2 w Maverick (10.10) zawierają następujące poprawki: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.16-1ubuntu3.1/changelog
Jednak apache2 Lucid (10.04, Long Term Support Release) najwyraźniej nie: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.14-5ubuntu8.4/changelog
Dokumentacja znajduje się w /usr/share/doc/apache2/README.multiple-instances
Dziękuję za szczegółową odpowiedź, ale później znalazłem ten link http://someofmylearnings.wordpress.com/2011/07/02/multiple-apache2-instances-on-ubuntu/ Procedura pokazana w tym bardzo prostym.
Kiedy instalujemy Apache, istnieje
/usr/share/doc/apache2.2-common/README.multiple-instances
plik, który daje wyobrażenie o tym, co dokładnie należy zrobić, aby utworzyć instancję Apache.W tym samym katalogu znajduje się
examples
katalog zawierający skrypt o nazwiesetup-instance
, którego możemy użyć do utworzenia instancji Apache. Tak więc, aby utworzyć kolejną instancję Apache, wystarczy:gdzie
web-server1
jest przyrostek. Oznacza to, że domyślnie dołącza „apache2-” do nazwy instancji.Spowoduje to utworzenie nowego katalogu
/etc/apache-web-server1
zawierającego wszystkie pliki konfiguracyjne. Stworzyłby również,/etc/init.d/apache-web-server1
którego można użyć do uruchomienia nowej instancji Apache.źródło