плохой шлюз 502: соединение() к unix:/var/run/php/php8.1-fpm.sock не удалось в error.log

Вопрос или проблема

Я установил php8.1 на ubuntu 18.04, но сталкиваюсь с проблемами. Я получаю ошибку 502 Bad Gateway. error.log выдает следующую ошибку:

2022/06/30 17:48:38 [crit] 2224#2224: *1 connect() к unix:/var/run/php/php8.1-fpm.sock не удалась (2: Нет такого файла или каталога) при подключении к upstream, клиент: 127.0.0.1, сервер: _, запрос: "GET /w3_scalar.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php8.1-fpm.sock:", хост: "localhost

Другие подробности:

$ sudo nginx -t
[sudo] пароль для zulfi: 
nginx: конфигурационный файл /etc/nginx/nginx.conf синтаксически корректен
nginx: тест конфигурационного файла /etc/nginx/nginx.conf успешен

и

$ sudo systemctl restart php8.1-fpm
~$ sudo systemctl status nginx.service
● nginx.service - Высокопроизводительный веб-сервер и сервер обратного прокси
   Загружен: загружен (/lib/systemd/system/nginx.service; включен; клиент по умолчанию: en
   Активен: активен (работает) с Ср 2022-06-29 15:49:48 CDT; 1 день 2 часа назад
     Документы: man:nginx(8)
  Процесс: 2220 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (код
  Процесс: 2010 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process 
 Главный PID: 2221 (nginx)
    Задачи: 13 (лимит: 4915)
   CGroup: /system.slice/nginx.service
           ├─2221 nginx: главный процесс /usr/sbin/nginx -g daemon on; master_pro
           ├─2224 nginx: рабочий процесс
           ├─2226 nginx: рабочий процесс



~$ journalctl -xe
-- Единица systemd-hostnamed.service завершила запуск.
-- 
-- Результат запуска - РЕЗУЛЬТАТ.
Jun 30 17:58:08 lc2530hz audit[20050]: AVC apparmor="ALLOWED" операция="connect
Jun 30 17:58:08 lc2530hz audit[20050]: AVC apparmor="ALLOWED" операция="file_pe
Jun 30 17:58:08 lc2530hz audit[20050]: AVC apparmor="ALLOWED" операция="file_pe
Jun 30 17:58:08 lc2530hz audit[20050]: AVC apparmor="ALLOWED" операция="file_pe
Jun 30 17:58:08 lc2530hz audit[20050]: AVC apparmor="ALLOWED" операция="file_pe
Jun 30 17:58:08 lc2530hz kernel: audit: type=1400 audit(1656629888.891:266): app
Jun 30 17:58:08 lc2530hz kernel: audit: type=1400 audit(1656629888.891:267): app
Jun 30 17:58:08 lc2530hz kernel: audit: type=1400 audit(1656629888.891:268): app
Jun 30 17:58:08 lc2530hz kernel: audit: type=1400 audit(1656629888.891:269): app
Jun 30 17:58:08 lc2530hz kernel: audit: type=1400 audit(1656629888.891:270): app
Jun 30 17:58:09 lc2530hz org.gnome.Nautilus[4167]: func=xmlSecCheckVersionExt:fi
Jun 30 17:58:09 lc2530hz kernel: CPU4: температура ядра выше порога, процессор заблокирован
Jun 30 17:58:09 lc2530hz kernel: CPU10: температура ядра выше порога, процессор заблокирован
Jun 30 17:58:09 lc2530hz kernel: CPU4: температура/скорость ядра нормальны
Jun 30 17:58:09 lc2530hz kernel: CPU10: температура/скорость ядра нормальны

Информация о файлах:

/etc/php/8.1/fpm/php-fpm.conf
pid = /run/php/php8.1-fpm.pid
error_log = /var/log/php8.1-fpm.log
include=/etc/php/8.1/fpm/pool.d/*.conf

/etc/php/8.1/fpm/pool.d/www.conf:
user = www-data
group = www-data
listen = /run/php/php8.1-fpm.sock
listen.group = www-data
listen = 127.0.0.1:9000

Пожалуйста, кто-нибудь, подскажите, как решить эту ошибку Bad Gateway 502, когда я выполняю свой php файл в браузере, используя: http://localhost/w3_scalar.php

Обратите внимание, что вышеуказанный файл работал на php 7.4
Зулфи.

==3 Июл 2022
@Том Ян
:Первая команда

 $ systemctl status php8.1-fpm
    ● php8.1-fpm.service - PHP 8.1 FastCGI Process Manager
       Загружен: загружен (/lib/systemd/system/php8.1-fpm.service; включен; клиент по умолчанию: 
       Активен: активен (работает) с Вс 2022-07-03 16:58:24 CDT; 42 мин назад
         Документы: man:php-fpm8.1(8)
      Процесс: 2087 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/ph
     Главный PID: 1921 (php-fpm8.1)
       Статус: "Активные процессы: 0, простаивающие: 2, Запросы: 0, медленные: 0, Трафик: 0req/se
        Задачи: 3 (лимит: 4915)
       CGroup: /system.slice/php8.1-fpm.service
               ├─1921 php-fpm: главный процесс (/etc/php/8.1/fpm/php-fpm.conf)
               ├─2079 php-fpm: пул www
               └─2085 php-fpm: пул www
    
    3 Июл 16:58:24 lc2530hz systemd[1]: Запуск PHP 8.1 FastCGI Process Manage
    3 Июл 16:58:24 lc2530hz systemd[1]: Запущен PHP 8.1 FastCGI Process Manager

Вторую команду:

$ journalctl -bu php8.1-fpm
Не удалось разобрать дескриптор загрузки 'u'

Я нашел следующую ссылку: https://stackoverflow.com/questions/51158830/nginx-connect-to-unix-var-run-php7-2-fpm-sock-failed-2-no-such-file-or-dir,

но это не связано с php8.1-fpm, кто-нибудь, подскажите мне.

$ sudo ps aux | grep 'php'
[sudo] пароль для zulfi: 
root      1921  0.0  0.1 454156 27524 ?        Ss   16:58   0:00 php-fpm: главный процесс (/etc/php/8.1/fpm/php-fpm.conf)
www-data  2079  0.0  0.0 456452 13896 ?        S    16:58   0:00 php-fpm: пул www
www-data  2085  0.0  0.0 456452 13896 ?        S    16:58   0:00 php-fpm: пул www
zulfi    13627  0.0  0.0 210984  6284 ?        Sl   17:39   0:00 /usr/lib/libreoffice/program/oosplash --writer file:///home/zulfi/Linux_Forum_SC%20Tools/nginx/nginx%20for%20php8/502%20bad%20gateway%20connect%20problem8p1.odt
zulfi    13646 99.7  2.7 2006652 443460 ?      Rl   17:39  25:54 /usr/lib/libreoffice/program/soffice.bin --writer file:///home/zulfi/Linux_Forum_SC%20Tools/nginx/nginx%20for%20php8/502%20bad%20gateway%20connect%20problem8p1.odt --splash-pipe=5
zulfi    15893  0.0  0.0  14432  1116 pts/0    S+   18:05   0:00 grep --color=auto php

Также:
~$ sudo systemctl is-active php8.1-fpm.service
активен

@Том Ян

$ ls -l /var/
всего 52
drwxr-xr-x  2 root root     4096 Jul  3 17:03 backups
drwxr-xr-x 18 root root     4096 May 27 17:18 cache
drwxrwsrwt  2 root whoopsie 4096 Jun 22 16:44 crash
drwxr-xr-x 86 root root     4096 Feb 18 23:31 lib
drwxrwsr-x  2 root staff    4096 Apr 24  2018 local
lrwxrwxrwx  1 root root        9 Feb  8  2019 lock -> /run/lock
drwxrwxr-x 18 root syslog   4096 Jul  3 17:03 log
drwxrwsr-x  2 root mail     4096 Jul 24  2018 mail
drwxrwsrwt  2 root whoopsie 4096 Jul 24  2018 metrics
drwxr-xr-x  2 root root     4096 Jul 24  2018 opt
lrwxrwxrwx  1 root root        4 Feb  8  2019 run -> /run
drwxr-xr-x 21 root root     4096 Apr 12 23:08 snap
drwxr-xr-x  7 root root     4096 Jul 24  2018 spool
drwxrwxrwt  9 root root     4096 Jul  3 18:09 tmp
drwxrwxrwx  3 root root     4096 May 23  2019 w

@Том Ян

все еще получаю: 2022/07/03 18:48:19 [crit] 2108#2108: *6 connect() к unix:/var/run/php/php8.1-fpm.sock не удалась (2: Нет такого файла или каталога) при подключении к upstream, клиент: 127.0.0.1, сервер: _, запрос: "GET /w3_static.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php8.1-fpm.sock:", хост: "localhost"

статус:

$ sudo systemctl status /var/run/php/php8.1-fpm.sock
[sudo] пароль для zulfi: 
Единица var-run-php-php8.1\x2dfpm.sock.mount не найдена.

Мой listen=listen = /run/php/php8.1-fpm.sock, должен ли я изменить его на /var/run/php8.1-fpm.sock?

@Том Ян, stat дает мне ошибку:

$stat /var/run/php/php8.1-fpm.sock
stat: невозможно получить информацию о '/var/run/php/php8.1-fpm.sock': Нет такого файла или каталога

У меня также есть другие версии:

$ ls /etc/php
7.2  8.0  8.1

Создают ли они проблемы?
@Том Ян ==4 Июл 2022

~$ ls /var/run/
acpid.pid             initctl             snap.docker
acpid.socket          initramfs           snapd-snap.socket
alsa                  libvirt             snapd.socket
apache2               libvirtd.pid        spice-vdagentd
avahi-daemon          lock                sshd
boltd                 log                 sshd.pid
console-setup         lvm                 sudo
containerd            lvmetad.pid         systemd
crond.pid             mlocate.daily.lock  teamviewerd.ipc
crond.reboot          mount               teamviewerd.pid
cups                  mysqld              thermald
dbus                  netns               tmpfiles.d
dhclient6-wlp2s0.pid  network             udev
dhclient-wlp2s0.pid   NetworkManager      udisks2
dmeventd-client       nginx.pid           unattended-upgrades.lock
dmeventd-server       php                 user
docker                plymouth            utmp
docker.pid            pppconfig           uuidd
docker.sock           rsyslogd.pid        wpa_supplicant
ebtables.lock         sendsigs.omit.d     xtables.lock
gdm3                  shm
gdm3.pid              snapd

и

@lc2530hz:

~$ ls /var/run/php
php8.1-fpm.pid

@lc2530hz:~$
Также www.conf имеет следующее дополнение:

listen.user  = www-data

и
listen = 127.0.0.1:9000
изменено на:

listen = 127.0.0.1

Мне все еще нужно:

listen.owner = www-data

@Том Ян, я получаю сообщение о сбое:

$ sudo systemctl restart php8.1-fpm
Работа для php8.1-fpm.service не удалась, так как управляющий процесс завершился с кодом ошибки.
Смотрите "systemctl status php8.1-fpm.service" и "journalctl -xe" для получения подробностей.
zulfi@lc2530hz:/etc/php/8.1/fpm/pool.d$ systemctl status php8.1-fpm.service
● php8.1-fpm.service - PHP 8.1 FastCGI Process Manager
   Загружен: загружен (/lib/systemd/system/php8.1-fpm.service; включен; клиент по умолчанию: 
   Активен: неудача (Результат: код выхода) с Пн 2022-07-04 18:26:53 CDT; 1 мин 54
     Документы: man:php-fpm8.1(8)

и
$ journalctl -xe
4 Июл 18:28:48 lc2530hz kernel: CPU6: Температура пакета выше порога, cpu
4 Июл 18:28:48 lc2530hz kernel: CPU1: Температура пакета выше порога, cpu
4 Июл 18:28:48 lc2530hz kernel: CPU7: Пак

==5-26-2023
@QuintenWu
Я проверил свой конфигурационный файл здесь:

/etc/nginx$ ls
conf.d          koi-win            nginx.conf       sites-enabled
fastcgi.conf    mime.types         proxy_params     snippets
fastcgi_params  modules-available  scgi_params      uwsgi_params
koi-utf         modules-enabled    sites-available  win-utf

следующими являются содержимое моего конфигурационного файла для nginx:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Исключая SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;



    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    

    gzip on;


    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

Я не могу найти строку:

fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;

Пожалуйста, скажите мне, какой файл вы просите меня отредактировать?

Зулфи.

Вы обновили соответствующую конфигурацию вашего веб-сервера? Например, с

fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;

на

fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;

Это решило мою проблему.

PS: Извините, я только что наткнулся на этот вопрос. Год спустя, но вот вам.

Ответ или решение

Ошибка 502 Bad Gateway, возникающая в вашем случае, указывает на то, что Nginx не может установить соединение с процессом PHP-FPM через указанный сокет. Рассмотрим пошагово возможные причины и решения этой проблемы.

Шаг 1: Убедитесь в наличии сокета

По сообщению об ошибке:

*1 connect() to unix:/var/run/php/php8.1-fpm.sock failed (2: No such file or directory)

это указывает на то, что Nginx не может найти сокет /var/run/php/php8.1-fpm.sock. Первое, что нужно сделать — убедиться, что один из ваших конфигурационных файлов PHP-FPM создаёт сокет по этому пути.

Проверьте файл конфигурации www.conf, который обычно находится по адресу /etc/php/8.1/fpm/pool.d/www.conf. Убедитесь, что у вас есть следующая строка:

listen = /var/run/php/php8.1-fpm.sock

Если в вашем файле конфигурации используется другой путь для сокета (например, /run/php/php8.1-fpm.sock), измените конфигурацию на:

listen = /var/run/php/php8.1-fpm.sock

Шаг 2: Перезапустите PHP-FPM

После внесения изменений необходимо перезапустить PHP-FPM, чтобы они вступили в силу. Используйте следующую команду:

sudo systemctl restart php8.1-fpm

Проверьте статус службы, чтобы убедиться, что она запущена правильно:

sudo systemctl status php8.1-fpm

Шаг 3: Проверьте конфигурацию Nginx

Теперь, когда PHP-FPM правильно настроен, убедитесь, что Nginx настроен на использование правильного сокета.

В конфигурационных файлах Nginx, которые находятся в /etc/nginx/sites-enabled/, ищите строки с fastcgi_pass. Обязательно измените их на:

fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;

Если вы уже использовали другие версии PHP (например, PHP 7.4), убедитесь, что вы обновили все соответствующие участки конфигурации.

Шаг 4: Логи и диагностика

Если после выполнения всех шагов ошибка 502 все еще возникает, проверьте логи Nginx для получения дополнительной информации. Используйте команду:

sudo tail -f /var/log/nginx/error.log

Также стоит проверить логи PHP-FPM:

sudo tail -f /var/log/php8.1-fpm.log

Шаг 5: Убедитесь в наличии прав доступа

Ваша настройка пользователей и групп должна быть корректной. Убедитесь, что сокет /var/run/php/php8.1-fpm.sock создан и доступен для пользователя, под которым работает Nginx (обычно это www-data).

Проверьте права доступа на сокет:

ls -l /var/run/php/

Если прав нет, вы можете настроить listen.owner и listen.group в конфигурации www.conf:

listen.owner = www-data
listen.group = www-data

Заключение

Соблюдая эти шаги, вы сможете устранить проблему с ошибкой 502 Bad Gateway в конфигурации Nginx и PHP-FPM. Важно следить за корректным указанием пути к сокету и конфигурацией служб. Если проблема сохраняется, детальная диагностика логов даст дополнительные подсказки о возможных сбоях.

Оцените материал
Добавить комментарий

Капча загружается...