PHP-FPM - Ошибка 503 - Не удалось подключиться к сокету домена Unix

Я получаю на сервере эту ошибку (CentOs 7):

[proxy:debug] proxy_util.c(2209): [client 80.251.245.153:61902] AH00944: connecting fcgi://127.0.0.1/data/webs/dev/index.php to 127.0.0.1:8000
[proxy:debug] proxy_util.c(2246): [client 80.251.245.153:61902] AH02545: fcgi: has determined UDS as /tmp/php56-fpm.sock
[proxy:debug] proxy_util.c(2418): [client 80.251.245.153:61902] AH00947: connected /data/webs/dev/index.php to httpd-UDS:0
[proxy:error] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /tmp/php56-fpm.sock (*) failed
[proxy_fcgi:error] AH01079: failed to make connection to backend: httpd-UDS
[proxy:debug] proxy_util.c(2171): AH00943: FCGI: has released connection for (*)

Socket Exists, я пытался изменить права доступа на 777, но не работал:

 ls -l /tmp/php56-fpm.sock
-rw-rw----. 1 apache apache 0 Feb 17 16:11 /tmp/php56-fpm.sock

PHP-FPM www.conf настройка прослушивания (полный файл находится здесь: https://pastebin.com/uD5GsMna ):

listen = / tmp / php56-fpm.sock

Virtualhost:

<VirtualHost *:80>
   ServerName dev.stavebninyfranek.com
   DocumentRoot "/data/webs/dev"
   <FilesMatch "\.php$">
     SetHandler  "proxy:unix:/tmp/php56-fpm.sock|fcgi://127.0.0.1"
   </FilesMatch> 
 </VirtualHost>

Мои файлы конфигурации (httpd.conf): https://pastebin.com/XS6cDuFQ

Я попробовал сменить сокет, изменить разрешение для пользователя apache: apache, но я не знаю, в чем проблема.

Спасибо

1
задан 17 February 2018 в 19:16
6 ответов

Я решил эту проблему, когда использовал

/ var / run / php5-fpm.sock

вместо / tmp / и его работа. Но почему нельзя использовать другую папку вместо / var / run / ?

0
ответ дан 3 December 2019 в 23:19

Это потенциально вызвано конфигурацией systemd на Apache, например, на Centos 7 по умолчанию служба настроена с:

PrivateTmp=true

Это означает, что она получает свой собственный подкаталог в / tmp, видимый как / tmp, поэтому он не может видеть файлы в / tmp, добавленный другими программами. Решением было бы не использовать / tmp для ваших сокетов php-fpm (более безопасно, чем установка вышеуказанного значения false).

(Я понимаю, что по крайней мере в одном случае используется производная Debian, но она также использует systemd !)

Паули.

1
ответ дан 3 December 2019 в 23:19

У меня была такая же проблема после обновления apache с 2.4.10 до 2.4.24. Со старым apache соединение с fcgi работало с сокетом в / tmp , в то время как новый apache выдавал ошибку (2) Нет такого файла или каталога . Перемещение сокета в / var / run решило проблему.

Глядя на исходный код для mod_proxy , я обнаружил, что в более новых версиях Apache путь должен быть относительно указанного. как DefaultRuntimeDir . В моей конфигурации это установлено в /etc/apache2/apache2.conf , а также используется некоторое определение из / etc / apache2 / envvars .

0
ответ дан 3 December 2019 в 23:19

изменить пользователя и группу на вашего текущего пользователя apache

/etc/php-fpm.d/www.conf 

** пользователь и группа должны быть одинаковыми в /etc/http/conf/http.conf

Затем выполните

chown -R user.user /run/php-fpm/www.conf

** измените своего пользователя

1
ответ дан 27 February 2020 в 06:18

Убедитесь, что пользователь и группа «слушают» в вашем /etc/php/php-fpm.d/www.conf (или аналогичном месте или PHP-FPM). пул в вашей системе) настроен в соответствии с настройками вашего веб-сервера:

; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: user and group are set as the running user
;                 mode is set to 0660
listen.owner = http
listen.group = http
listen.mode = 0660

В зависимости от вашего веб-сервера и ОС это могут быть http, www-data, httpd или что-то еще.

0
ответ дан 23 February 2021 в 14:37

В моем случае при изменении примера версии PHP на PHP7.4 для определенного веб-сайта в Ispconfig 3.2.2 файл webxx.conf должен был быть создан в /etc/php /7.4/fpm/pool.d/, но вместо этого он был создан в корне /.

На данный момент я просто переместил файл webxx.conf в /etc/php/7.4/fpm/pool.d/ и перезапустил PHP7.4-fpm . sudo systemctl перезапустить php7.4-fpm , и он работает правильно.

0
ответ дан 25 May 2021 в 12:29

Теги

Похожие вопросы