Мы выполняем другую версию PHP для одного из сайтов, таким образом, мы настроили fastcgi. Но через запросы в любые файлы, даже статическую CSS и js проходят. Как мы можем ограничить его php только? Это - текущая конфигурация:
<VirtualHost *:80>
DocumentRoot /services/www/htmlblog
DirectoryIndex index.html index.shtml index.cgi index.php
ServerName 128.199.222.207
ServerAlias www.blog.example.org
<IfModule mod_fastcgi.c>
<FilesMatch \.php$>
SetHandler php-script
</FilesMatch>
FastCgiExternalServer /services/www/htmlblog -host 127.0.0.1:8998 -pass-header Authorization
</IfModule>
<FilesMatch "configuration.php">
Order allow,deny
Deny from all
</FilesMatch>
<Directory "/">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Я попробовал это:
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:8998 -pass-header Authorization -idle-timeout 60
</IfModule>
Который подает index.php файл, расположенный в той папке. Если я изменяю его на:
FastCgiExternalServer /services/www/htmlblog -host 127.0.0.1:8998 -pass-header Authorization -idle-timeout 60
Это снова просто передает статические файлы php-fpm.
Я думаю, что ваша конфигурация неверна.
Это должно быть примерно так:
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization -idle-timeout 60
</IfModule>
Слава должна передавать только файлы PHP на сервер FastCGI.
Также я создал файл fastcgi-php.conf и поместил его в мою папку conf-available и связал его символической ссылкой, так что таким образом я бы включил PHP для всего сервера.