Рейтинг:0

Получение 503 с помощью apache proxy_fcgi_module [РЕШЕНО]

флаг sa

Я использую CentOS 9 Stream на виртуальной машине, пытаясь настроить свой сервер apache, чтобы иметь возможность отображать php-контент в Интернете. Сервер работает нормально, когда это просто html, но я получаю эти ошибки (503 в браузере), когда пытаюсь использовать php. Мой httpd.conf — это, по сути, минимум для запуска сервера с виртуальными хостами, и единственное, что я добавил, — это SetHandler для php-файлов. Я не очень хорошо разбираюсь в php, но насколько я понимаю, что он делает, когда сервер получает запрос на файл php, он вызывает службу php-fpm для его обработки.

Службы httpd и php-fpm работают, и я установил для логического значения SELinux httpd_can_network_connect значение 1, так как я читал, что это может привести к ошибке 503.

/var/log/httpd/error.log говорит:

[прокси:ошибка] [pid 4807:tid 4812] (111)Отказ в подключении: AH00957: FCGI: попытка подключения к [::]:8000 (*) не удалась
[proxy_fcgi: ошибка] [pid 4807:tid 4812] [клиент 192.168.122.1:60494] AH01079: не удалось установить соединение с серверной частью: (ноль)

мой httpd.conf:

Слушай 80
Слушай 8080
Апач пользователя
Групповой апач
Корневой сервер /etc/httpd
Журнал ошибок /var/log/httpd/error.log


LoadModule mpm_event_module modules/mod_mpm_event.so
Модули загрузки systemd_module/mod_systemd.so
Модули загрузки unixd_module modules/mod_unixd.so
Модули загрузки authz_core_module/mod_authz_core.so
LoadModule dir_module modules/mod_dir.so

Модули LoadModule proxy_module/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so


<Каталог />
        Требовать все отказано
</Каталог>

<Каталог /var/www/html>
        Требовать все предоставленные
</Каталог>

<Каталог /srv/www>
        Требовать все предоставленные
</Каталог>


<Виртуальный хост 192.168.122.60:80>
        DocumentRoot "/var/www/html"
        DirectoryIndex index.html
</ виртуальный хост>

<Виртуальный хост 192.168.122.60:8080>
        DocumentRoot "/srv/www"
        DirectoryIndex index.php

        <Соответствие файлов \.php$>
            SetHandler "прокси:fcgi:/run/php-fpm/www.sock"
        </FilesMatch>
</ виртуальный хост>

и мой www.conf:

слушать = /run/php-fpm/www.sock
слушать.владелец = апач
listen.group = апач
listen.allowed_clients = 127.0.0.1

РЕШЕНИЕ: Как указал AlexD, проблема заключалась в том, что apache пытался подключиться через локальный хост вместо сокета. Я смог заставить его работать, либо изменив мои файлы конфигурации для прослушивания на 127.0.0.1:9000 Если я хочу использовать сокет unix, мне нужно изменить httpd.conf следующим образом:

<Proxy "unix:/run/php-fpm/www.sock|fcgi://php-fpm">
   ProxySet disablereuse=off
</Proxy>

<FilesMatch \.php$>
   SetHandler proxy:fcgi://php-fpm
</FilesMatch>

Нашел вот этот конфиг: https://tecadmin.net/install-apache-php-fpm-centos-8/

Рейтинг:0
флаг jp

Сообщение об ошибке (111) В подключении отказано: AH00957: FCGI: попытка подключения к [::]:8000 (*) не удалась указывает на то, что ваш Apache пытается подключиться к серверной части через TCP-порт 8000, в то время как ваш PHP-FPM прослушивает сокет unix /run/php-fpm/www.sock. Вы, вероятно, забыли перезапустить Apache.

bejgli avatar
флаг sa
Я перезапускал httpd после каждого изменения конфигурации. Как еще я могу исправить это, если проблема в этом? По крайней мере, я немного лучше понимаю проблему, спасибо!
флаг jp
Если вы перезапустили Apache, то опубликованная вами конфигурация по какой-то причине не соответствует текущей конфигурации.
bejgli avatar
флаг sa
Я изменил файлы конфигурации для прослушивания 127.0.0.7:9000 и смог попасть на свой сайт. С портом 8000 служба php-fpm не запускалась.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.