Есть задание:
Настроить apache с тремя виртуальными хостами с доступом по IP. На первом для php использовать mod_php, на втором должны обрабатываться версией php, установленной как CGI, на третьем должен использоваться FastCGI. Доступ к отдельных хостам производится по порту (80, 8080 и 8000 соответственно)
Конфиги для хостов храню в отдельных файлах.
Первый хост
Код: Выделить всё
NameVirtualHost *
<VirtualHost _default_>
ServerName 192.168.110.2
DocumentRoot /var/www/vhosts/default/html
DirectoryIndex index.php index.html
LoadModule php5_module modules/libphp5.so
<Directory /var/www/vhosts/default/html/>
AddHandler php5-script .php
AddType text/html .php
</Directory>
<Directory /var/www/vhosts/default/html/phpmyadmin>
AllowOverride Limit
</Directory>
AccessFileName .htaccess
ErrorLog /var/www/vhosts/default/logs/error.log
CustomLog /var/www/vhosts/default/logs/access.log combined
</VirtualHost>
Код: Выделить всё
Listen 8080
<VirtualHost 192.168.110.2:8080>
ServerName 192.168.110.2
DocumentRoot /var/www/vhosts/first/html
DirectoryIndex index.php index.html
ScriptAlias /cgi-bin/ "/var/www/vhosts/first/cgi-bin/"
<Directory /var/www/vhosts/first/html/>
AddType application/x-httpd-php .php
Action application/x-httpd-php /cgi-bin/php
</Directory>
<Directory /var/www/vhosts/first/cgi-bin>
Options ExecCGI
</Directory>
ErrorLog /var/www/vhosts/first/logs/error.log
CustomLog /var/www/vhosts/first/logs/access.log combined
</VirtualHost>
Код: Выделить всё
Listen 8000
LoadModule fastcgi_module modules/mod_fastcgi.so
<IfModule mod_fastcgi.c>
FastCgiConfig -singleThreshold 30 -minProcesses 2 -restart \
-idle-timeout 400 -killInterval 200 -autoUpdate \
-pass-header HTTP_AUTHORIZATION
AddHandler fastcgi-script .fcgi
</IfModule>
<VirtualHost 192.168.110.2:8000>
ServerName 192.168.110.2
DocumentRoot /var/www/vhosts/second/html
# SuexecUserGroup apache apache
Alias /cgi-bin/ "/var/www/vhosts/second/cgi-bin/"
AddHandler fastcgi-script .php
Action fastcgi-script /cgi-bin/php5.fcgi
<Directory /var/www/vhosts/second/cgi-bin>
Options ExecCGI FollowSymLinks
SetHandler fastcgi-script
</Directory>
DirectoryIndex index.php index.html
ErrorLog /var/www/vhosts/second/logs/error.log
CustomLog /var/www/vhosts/second/logs/access.log combined
</VirtualHost>
Код: Выделить всё
PHP_FCGI_CHILDREN=2
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_MAX_REQUESTS
exec /var/www/vhosts/second/cgi-bin/php
Первая - не могу заставить mod_php работать только для первого хоста. phpinfo() запущенное на любом хосте выдает версию php, запущенного через mod_php. При отключении мод_пхп (в конфиге первого хоста) на 2-м хосте (CGI) phpinfo() начинает выдавать нормальную версию php для данного хоста.
Вторая - не работает FastCGI. В данной конфигурации выдает
Код: Выделить всё
403 Forbidden
You don't have permission to access /index.php on this server.
Код: Выделить всё
[Wed Aug 06 15:48:48 2008] [error] [client 192.168.110.30] FastCGI: invalid (dynamic) server "/var/www/vhosts/second/html/index.php": access for server (uid 48, gid 48) not allowed: execute not allowed by owner
Код: Выделить всё
[root@host1 html]# ls -l /var/www/vhosts/second/cgi-bin/
total 10596
-rwxr-xr-x 1 apache apache 10829200 Aug 6 11:46 php
-rwxr-xr-x 1 apache apache 146 Aug 6 11:02 php5.fcgi