Назад | Перейти на главную страницу

Как я могу заставить apache передавать только fastcgi файлы .php?

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