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

Проблема с настройкой прокси-сервера php-fpm mod на centos 6

Я настраиваю PHP_FPM в дистрибутиве Centos 6. Я использую php 5.4.45 и apache 2.2.15 и "mod_proxy.so" для вызова сокета. Но со следующей конфигурацией Vhost и php-fpm я все еще получаю те же две проблемы в журналах моего сайта:

[Tue Mar 10 11:36:49 2020] [error] (111)Connection refused: proxy: FCGI: attempt to connect to 127.0.0.1:0 (*) failed
[Tue Mar 10 11:36:49 2020] [error] [client 192.168.1.38] AH01079: failed to make connection to backend: localhost

Я перепробовал и прочитал огромное количество решений, но ни одно из них не помогло мне так сильно. Вот конфигурация моего Vhost и файла www.conf php-fpm:

<VirtualHost _default_:80>
   DocumentRoot "/var/www/html"

   <Directory "/var/www/html">
           Order allow,deny
            Allow from all
           AllowOverride All
   </Directory>

   ErrorLog logs/default-error_log
   LogLevel warn
   TransferLog logs/default-access_log
   CustomLog logs/default-request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

    ProxyPassMatch ^/(.*\.php)$ fcgi://localhost/var/www/html/$1
    DirectoryIndex index.php info.php

    <FilesMatch \.php$>
           SetHandler "proxy:unix:/var/run/php-fpm/default.sock|fcgi://localhost/"
    </FilesMatch>

listen = /var/run/php-fpm/default.sock
listen.owner = apache
listen.group = apache
listen.mode = 0660
user = apache
group = apache
listen.allowed_clients = 127.0.0.1
php_value[opcache.file_cache] = /var/lib/php/opcache

Спасибо за внимание. С уважением

Apache 2.2 изначально не имеет mod_proxy_fcgi (ср. этот вопрос), вы должны были получить его от альтернативные источники. Кроме того, используя mod_proxy с SetHandler директивные работы с версии 2.4.10. Следовательно:

  1. Ваш <FilesMatch> блок не действует, поэтому его можно удалить,
  2. Только ваш ProxyPassMatch директива работает. Однако ваша версия mod_proxy_fcgi не поддерживает сокеты домена Unix, поэтому вам необходимо подключиться к PHP-FPM используя TCP/IP разъем. Для этого измените www.conf файл и замените listen директива с:

    listen 127.0.0.1:9000
    

    и перезапустить PHP-FPM. На стороне Apache 2 замените ProxyPassMatch директива с:

    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1
    

    и перезагрузить Apache2.