Мы используем другую версию 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 для всего сервера.