Вопрос или проблема
Я установил 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. Важно следить за корректным указанием пути к сокету и конфигурацией служб. Если проблема сохраняется, детальная диагностика логов даст дополнительные подсказки о возможных сбоях.