Добрый день.
Пытаюсь научиться запускать Apache с разными конфигами, чтобы можно было использовать разные версии PHP и т.п.
В качестве основы использовал данный мануал http://wiki.apache.org/httpd/RunningMultipleApacheInstances.
Вроде бы даже почти все получилось, т.е. я запускаю 3 инстанса, и все они выводятся командой ps aux | grep httpd
sudo /usr/local/apache2_2/bin/apachectl -f /usr/local/apache2_2/_/sites/httpd-proxy.conf -k start
sudo /usr/local/apache2_2/bin/apachectl -f /usr/local/apache2_2/_/sites/httpd-php53.conf -k start
sudo /usr/local/apache2_2/bin/apachectl -f /usr/local/apache2_2/_/sites/httpd-php54.conf -k start
Т.е., на данном этапе ошибок вроде быть не должно, по крайней мере консоль ничего не выводила про ошибки. Проблема скорее всего в конфигурировании виртуальных хостов. В этом вопросе я не очень опытен.
Привожу свои тестовые конфиги:
<VirtualHost *:80>
DocumentRoot /home/asdfzxcv/_/sites/test01/web
ServerName test01.l
# ProxyPass / http://localhost:83/
# ProxyPassReverse / http://localhost:83/
ProxyPass / http://test01.l:83/
ProxyPassReverse / http://test01.l:83/
RewriteOptions Inherit
<LocationMatch ^/private>
Order Allow,Deny
Deny from all
</LocationMatch>
<Location /server-status>
SetHandler server-status
</Location>
</VirtualHost>
и
<VirtualHost *:80>
DocumentRoot /home/asdfzxcv/_/sites/test02/web
ServerName test02.l
ProxyPass / http://localhost:84/
ProxyPassReverse / http://localhost:84/
RewriteOptions Inherit
ErrorLog /home/asdfzxcv/_/sites/test02/error_log
TransferLog /home/asdfzxcv/_/sites/test02/access_log
</VirtualHost>
В первом примере видно, что я пытался использовать вместо localhost:83, test01.l, что тоже ничего не изменило:
# ProxyPass / http://localhost:83/
# ProxyPassReverse / http://localhost:83/
ProxyPass / http://test01.l:83/
ProxyPassReverse / http://test01.l:83/
Т.е., я ожидаю, что по адресу test01.l или test02.l я буду получать отдачу контента из папки /home/asdfzxcv/_/sites/test01/web. А в браузер получаю контент из /usr/htdocs. Хотя, до попытки использовать reverse proxy, с одним запущенным инстансом, эти примеры сайтов использовали нужные, соответствующие им папки.
Также, есть конфиг, предшествующий конфигам виртуальных хостов, находящийся в конце httpd-proxy.conf
RewriteEngine On
RewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]
<FilesMatch "\.ph(p[2-6]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
ServerName 127.0.0.1
NameVirtualHost *:80
<Directory "/home/asdfzxcv/_/sites">
Order allow,deny
allow from all
AllowOverride All
Options +Indexes +FollowSymLinks
</Directory>
<VirtualHost *:80>
ServerName default
DocumentRoot /usr/local/apache2_2/htdocs
</VirtualHost>
# ЗДЕСЬ Я КАК РАЗ ПОДКЛЮЧАЮ ВИРТ. ХОСТЫ
Include _/sites/test01.conf
Include _/sites/test02.conf
Еще раз, кратко о проблеме:
- запускаю несколько инстансов Apache
- пытаюсь перейти по адресу test01.l
- получаю контент из /usr/htdocs вместо /home/asdfzxcv/_/sites/test01/web, хотя до попытки использовать reverse proxy, эти тестовые сайты работали исправно.