Назад | Перейти на главную страницу

Ошибка неверного шлюза Nginx 502

В настоящее время на моем сервере Centos 6.8 возникает ошибка 502 Bad Gateway.

    2017/01/30 23:57:31 [crit] 26911#0: *1 connect() to unix:/var/run/php/php7.0-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 192.168.0.15, server: 192.168.0.$

Я проверил, существует ли каталог, а его нет. Ближайшим к папке, который я смог найти, был / var / run / php-fpm, который содержит только php-fpm.pid.

Вот шаги для устранения этой проблемы:

  1. Проверить, если php-fpm это работает:

    sudo service php-fpm status
    sudo service php7-php-fpm status # use this if you are using remi PHP 7
    
  2. Проверить на listen в файле конфигурации www.conf php-fpm:

    grep -Ri listen /etc/php/7.0/fpm/pool.d/www.conf 
    grep -Ri listen /etc/opt/remi/php70/php-fpm.d # for remi
    
  3. Убедитесь, что ваш nginx fastcgi_pass директива соответствует вашему listen директива.

Для меня процесс установки таков, после установки nginx из репозиторий nginx.org:

mkdir -p /var/www/public_html
chown -R nginx:nginx /var/www/public_html
restorecon -rv /var/www
yum install php-fpm
sed -i 's@listen = 127.0.0.1:9000@listen = /var/run/php-fpm/php-fpm.sock@' /etc/php-fpm.d/www.conf
sed -i 's@;listen.owner = nobody@listen.owner = nobody@' /etc/php-fpm.d/www.conf
sed -i 's@;listen.group = nobody@listen.group = nobody@' /etc/php-fpm.d/www.conf
sed -i 's@user = apache@user = nginx@' /etc/php-fpm.d/www.conf
sed -i 's@group = apache@group = nginx@' /etc/php-fpm.d/www.conf
systemctl start php-fpm.service
systemctl enable php-fpm.service

Тогда конфигурация вашего хоста должна быть примерно такой:

server
{
    listen 443 ssl;

    root /var/www/public_html;
    index index.php;

    location ~ \.php$
    {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Затем перезапустите nginx и готово.