У меня есть настройки с вышеупомянутым. Все работает отлично, за исключением одной проблемы, при отсутствии файлов .php я всегда получаю пустую страницу с сообщением «Файл не найден» (кстати, с кодом состояния 404). У меня есть строка ErrorDocument 404 в моем vhost, но похоже, что она не действует в случае FastCGI (для файлов, не перенаправленных в FastCGI, она все еще работает). Есть ли способ для правильной обработки 404 в этой конфигурации? Вот он мой вхост:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/xxx/yyy/
<Directory /var/www/xxx/yyy>
Options FollowSymLinks -MultiViews
AllowOverride FileInfo AuthConfig Limit Options
Order allow,deny
allow from all
</Directory>
FastCgiExternalServer /var/www/xxx/yyy/php.fastcgi -socket /tmp/php-fpm -pass-header Authorization
Action php-fpm-yyy /php.fastcgi virtual
<FilesMatch ".+(php|html)$">
SetHandler php-fpm-yyy
</FilesMatch>
ErrorDocument 404 /map.php
ErrorLog ${APACHE_LOG_DIR}/yyy/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/yyy/access.log combined
</VirtualHost>
Задача ещё не решена.
Других решений пока нет …