Как я могу запустить два экземпляра Apache в одной системе и запускать и останавливать их независимо друг от друга. Любая помощь или ведет приветствуются.
источник
Как я могу запустить два экземпляра Apache в одной системе и запускать и останавливать их независимо друг от друга. Любая помощь или ведет приветствуются.
Я думаю, что это может быть то, что вы ищете http://wiki.apache.org/httpd/RunningMultipleApacheInstances
Для справки по содержанию в ссылке выше
1) Установите Apache на свой сервер
sudo apt-get install apache2
sudo apt-get install libapache2-mod-perl2
sudo apt-get install other-lib-mods-needed
2) Настройте отдельные конфигурации apache для каждого экземпляра, который вы хотите запустить
Для Ubuntu это должно быть в / etc / apache2 По существу для каждого экземпляра, который вам нужно прослушивать на другом порту.
# 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
В этом примере будет запущено 4 разных экземпляра, каждый из которых обрабатывает отдельный тип модуля, то есть один для perl, один для python и т. Д.
Теперь вам также необходимо настроить виртуальные хосты в экземпляре прокси-сервера, чтобы при поступлении запроса на DAV-сервер subversion он передавался на ваш apache «python-dav», тогда как запросы на ваш блог WordPress передавались на ваш php 'apache instance. Давайте снова отредактируем 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) проверить все Итак, мы закончили с настройкой, и теперь нам нужно запустить все экземпляры apache и проверить, что все работает как положено. Конечно, вы можете сделать это с помощью «apachectl», например,
/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) Настройте сценарии инициализации для запуска apache с соответствующим файлом конфигурации
Связанный ресурс содержит более подробную информацию о редактировании файла rc.conf, но касается конкретно работы с Ubuntu, поэтому оба эти раздела я выделю ниже.
Файл /etc/rc.conf во FreeBSD является главным файлом, содержащим информацию о конфигурации системы>. Этот файл читается после загрузки ядра и служит для запуска служб,> демонов, настройки сетевых интерфейсов и т. Д. Для нашего рецепта мы включим сервер apache>, перечисляя доступные экземпляры (профили), их файлы конфигурации и > сообщая FreeBSD, какой из них необходимо запустить (включить) после загрузки системы.
# /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"
Когда эти профили настроены в /etc/rc.conf и включены, они будут запущены> после успешной загрузки системы. Если вы хотите объявить профиль, но хотите только> запустить соответствующий экземпляр apache вручную, вы можете просто отредактировать «/etc/rc.conf» и> сказать, например:
# the apache php instance
apache22_php_configfile="/usr/local/etc/apache22/httpd-php.conf"
apache22_php_enable="NO"
Позже вы можете запустить / остановить любой экземпляр apache вручную, используя только имя профиля> (proxy, perl, python, php), например так:
/usr/local/etc/rc.d/apache22 start php
/usr/local/etc/rc.d/apache22 stop perl
...
3b) для Ubuntu
Я не уверен, что это будет похоже (и безболезненно), как в случае с FreeBSD (см. Раздел на rc.conf выше). Сценарии apache rc, установленные с портом apache во FreeBSD, уже много лет знают о возможности использования различных профилей.
Недавно сценарии инициализации Ubuntu / Debian (например, /etc/init.d/apache2) были обновлены для поддержки нескольких экземпляров apache (например, нескольких конфигураций с именем / etc / apache2- $ SUFFIX). В зависимости от того, какую версию Ubuntu / Debian вы используете, вам может повезти ... или нет.
Эта функция появилась в Debian в версии 2.2.14-6 в феврале 2010 года: http://lists.alioth.debian.org/pipermail/pkg-apache-commits/2010-Feb февраля/000295.html
В Ubuntu пакеты apache2 в Maverick (10.10) содержат следующие исправления: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.16-1ubuntu3.1/changelog.
Однако apache2 из Lucid (10.04, выпуск долгосрочной поддержки), по-видимому, этого не делает: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.14-5ubuntu8.4/changelog
Документация может быть найдена в /usr/share/doc/apache2/README.multiple-instances
Спасибо за ваш подробный ответ , но позже я нашел эту ссылку http://someofmylearnings.wordpress.com/2011/07/02/multiple-apache2-instances-on-ubuntu/ процедуру , указанную в этом очень просто.
Когда мы устанавливаем Apache, появляется
/usr/share/doc/apache2.2-common/README.multiple-instances
файл, который дает вам представление о том, что именно нужно сделать для создания экземпляра Apache.Внутри того же каталога есть
examples
каталог, который содержит скрипт с именем,setup-instance
который мы можем использовать для создания экземпляра Apache. Итак, для создания другого экземпляра Apache все, что нужно сделать, это:где
web-server1
суффикс То есть по умолчанию он добавляет «apache2-» к имени вашего экземпляра.Это создаст новый каталог,
/etc/apache-web-server1
который содержит все файлы конфигурации. Также будет/etc/init.d/apache-web-server1
создан файл, который вы можете использовать для запуска нового экземпляра Apache.источник