Сбой директивы SetHandler в VirtualHost, но нормально в основной конфигурации - PullRequest
0 голосов
/ 07 января 2019

Установка - CentOS 7, Apache 2.4.6, php-fpm 5.6 и 7.3 (через remi repo).

Я недавно преобразовал мои настройки phpmod по умолчанию в php-fpm и получил PHP 5.4.16, работающий очень хорошо Сейчас я пытаюсь включить PHP 7.3 в качестве опции для каждого виртуального хоста. Я установил и запустил php73-php-fpm, затем посмотрел на сторону Apache.

My /etc/httpd/conf.d/php.conf содержит следующую директиву:

<FilesMatch \.php$>
#    SetHandler application/x-httpd-php
    SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

Это прекрасно работает для всех хостов. Затем я добавил директиву <FilesMatch> в один файл .conf виртуального хоста:

<VirtualHost *:80>
    ServerName www.sittingduck.co.nz
    ServerAlias sittingduck.co.nz
    DocumentRoot /var/www/sittingduck.co.nz/public_html
    ErrorLog /var/log/httpd/sittingduck.co.nz.error.log
    CustomLog /var/log/httpd/sittingduck.co.nz.requests.log combined
    <FilesMatch \.php$>
        SetHandler "proxy:fcgi://127.0.0.1:9073"
    </FilesMatch>
</VirtualHost>

Когда я перезагружаю сервер httpd, в ErrorLog, указанном выше, появляется следующее:

[proxy:error] [pid 17061] (111)Connection refused: AH00957: FCGI: attempt to connect to 127.0.0.1:9073 (*) failed
[proxy_fcgi:error] [pid 17061] [client 54.36.148.97:33788] AH01079: failed to make connection to backend: 127.0.0.1

После проверки того, что оба сервера php-fpm действительно работают ...

tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      16794/php-fpm: mast 
tcp        0      0 127.0.0.1:9073          0.0.0.0:*               LISTEN      17510/php-fpm: mast 

... Затем я попытался переключить основной php.conf на порт 9073. Когда я это делаю, все сайты работают, и я могу подтвердить (используя страницу phpinfo на сайте выше), что я работаю на PHP 7.3.

Что мне здесь не хватает? Конфигурации виртуального хоста определенно загружаются после php.conf, как следует из ошибки, и fpm определенно находится в рабочем состоянии, и порт явно доступен.

Я чувствую, что есть какое-то правило или предостережение в отношении того, как у меня определены директивы. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 07 января 2019

Проблема была http против https. Мой файл конфигурации определял *: 80, но я бездумно просматривал https-версию тестовой страницы. Виртуальный хост *: 443 находился в отдельном файле конфигурации, который был добавлен после установки инструментом certbot. Ручное редактирование этого дополнительного файла решило проблему.

Я до сих пор не совсем уверен, почему ошибки в журнале запускаются, а затем и не позже, но, возможно, это было связано с тем, что определенные страницы запрашивались по http и / или https в разное время.

...