Відповіді:
Я думаю, що це може бути те, що ви шукаєте http://wiki.apache.org/httpd/RunningMultipleApacheInsances
Для довідки про вміст у вищенаведеному посиланні
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, він передається на ваш "python-dav" apache, тоді як запити для вашого блогу wordpress передаються вашому " php 'apache екземпляр. Давайте відредагуємо "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) Налаштуйте скрипти init для запуску 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 вручну, використовуючи лише ім'я профілю> (проксі, 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, вже багато років усвідомлюють можливість різних профілів.
Нещодавно скрипти Uittu / Debian init (наприклад, /etc/init.d/apache2) були оновлені для підтримки декількох екземплярів apache (наприклад, декілька конфігурацій, названих / etc / apache2- $ SUFFIX). Залежно від випуску Ubuntu / Debian, який ви використовуєте, можливо, вам пощастить ... чи ні.
Ця функція з'явилася в Debian у версії 2.2.14-6 у лютому 2010 року: http://lists.alioth.debian.org/pipermail/pkg-apache-commiss/2010-February/000295.html
У Ubuntu пакети apache2 у Maverick (10.10) містять ці виправлення: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.16-1ubuntu3.1/changelog
Однак Lucid (10.04, довгостроковий випуск підтримки) apache2, очевидно, не: http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.2.14-5ubuntu8.4/changelog
Документацію можна знайти в /usr/share/doc/apache2/README.multiple-in вещества
Дякую за детальну відповідь, але пізніше я знайшов це посилання http://someofmylearnings.wordpress.com/2011/07/02/multiple-apache2-instance-on-ubuntu/ Процедура, показана в цій дуже простій.
Коли ми встановлюємо Apache, є /usr/share/doc/apache2.2-common/README.multiple-instances
файл, який дає вам уявлення про те, що саме потрібно зробити, щоб створити екземпляр Apache.
Всередині цього ж каталогу знаходиться examples
каталог, який містить скрипт з назвою, setup-instance
який ми можемо використовувати для створення екземпляра Apache. Отже, щоб створити інший екземпляр Apache, все, що потрібно зробити, це:
sh /usr/share/doc/apache2.2-common/examples/setup-instance web-server1
де web-server1
суфікс. Тобто, він додає "apache2-" за замовчуванням до вашого імені екземпляра.
Це створить новий каталог, /etc/apache-web-server1
який містить усі файли конфігурації. Це також створить, /etc/init.d/apache-web-server1
який ви можете використовувати для запуску нового екземпляра Apache.