(Я вижу, что есть несколько существующих вопросов об ошибках 403 и один или два из остальных части моей конфигурации, но ничего, что, кажется, соответствует моей конкретной ситуации, которую я видел до сих пор, и я не уверен, как действовать в результате.)
У меня есть промежуточный сайт на CentOS 7 сервер (CentOS Linux версии 7.6.1810 (Core)) под управлением Apache / 2.4.6. Корневой каталог сайта - / var / www /
. Это Drupal 8.6.12. site, PHP 7.1.27.
Сегодня я выполнил следующие шаги, чтобы изменить apache с использования prefork MPM на event MPM и использовать php-fpm:
1) запустил yum install php71w-fpm
2) добавлен прокси SetHandler: fcgi: //127.0.0.1: 9000 "
до /etc/httpd/conf.d/php.conf
(полное содержимое моего php.conf выглядит следующим образом):
#
# Cause the PHP interpreter to handle files with a .php extension.
#
AddHandler php7-script .php
AddType text/html .php
SetHandler "proxy:fcgi://127.0.0.1:9000"
#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php
#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
#AddType application/x-httpd-php-source .phps
#
# Apache specific PHP configuration options
# those can be override in each configured vhost
#
php_value session.save_handler "files"
php_value session.save_path "/var/lib/php/session"
php_value soap.wsdl_cache_dir "/var/lib/php/wsdlcache"
3 ) Раскомментировал строку mpm_event в 00-mpm.conf, закомментировал строку mpm_prefork
4)
systemctl enable php-fpm
systemctl start php-fpm
systemctl restart httpd
В /etc/php-fpm.d/
, в обоих www.conf
и
У меня есть раскомментированные строки user = apache
и group = apache
и listen = 127.0.0.1:9000
.
Мой сайт работает, но все файлы JS и CSS теперь не загружаются с ошибкой 403. Владелец и группа этих файлов - "apache". Поскольку Drupal использует множество этих файлов, я не проверял значения разрешений для каждого отдельного файла, но это происходит как минимум с 755 и 644. Я сам сегодня не менял никаких прав доступа к файлам.
Я думаю, что это связано с строка прокси в php.conf, но я понятия не имею, что с этим делать.
Я смог исправить это по предложению Фредди, окружив SetHandler "proxy: fcgi: //127.0.0.1: 9000"
в / etc / httpd /conf.d/php.conf
с предложением FilesMatch:
<FilesMatch "\.php$">
<If "-f %{REQUEST_FILENAME}">
SetHandler "proxy:fcgi://127.0.0.1:9000"
</If>
</FilesMatch>