Ошибка Nginx, сообщающая об отказе в соединении с портом PHP-FPM

Недавно создайте стек LEMP с PHP-FPM на Ubuntu 14.04 x64. Попытка получить доступ к некоторому PHP в моем webroot. Браузер показывает 502 Bad Gateway, а журнал ошибок Nginx показывает следующее (мой IP и рабочий IP удалены):

TIME [error] 22838#0: *7 connect() failed (111: Connection refused) while connecting to upstream, client: [my personal IP], server: [production server IP], request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "[production server IP]"

Чтобы определить, работает ли PHP-FPM, я выполняю:

ps -waux | grep php5

И я отвечу в ответ:

root     22930  0.0  0.4 327432 16324 ?        Ss   10:10   0:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf) 

Как определить, на каком порту работает PHP-FPM или почему он не работает на этом порту? Спасибо.

4 ответа

Решение

Нашел это:

Чтобы указать номер порта, вам нужно отредактировать директивуlisten = в /etc/php5/fpm/pool.d/www.conf, однако я обнаружил, что теоретически более эффективно разрешать Nginx взаимодействовать через сокеты Unix поэтому я поменялся

127.0.0.1:9000

с

/var/run/php5-fpm.sock

Это был первый шаг...

Затем мне пришлось заменить следующие строки в файле конфигурации моих сайтов (sites-available/default):

fastcgi_pass 127.0.0.1:9000;

с

fastcgi_pass unix:/var/run/php5-fpm.sock;

И теперь я в порядке.

Если ваш сервис (не только PHP-FPM) является портом прослушивания, вы можете определить его, набрав sudo netstat -lntp:

# sudo netstat -lntp
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 192.168.16.121:3306     0.0.0.0:*               LISTEN      1427/mysqld     
tcp        0      0 127.0.0.1:11211         0.0.0.0:*               LISTEN      1722/memcached  
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      642/smbd        
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      21315/nginx     
tcp        0      0 127.0.0.1:81            0.0.0.0:*               LISTEN      25078/php-fpm.conf)

где вы можете видеть, что процесс PHP-FPM с pid 25078 использует порт 81.

RHEL 9.1 / установка по умолчанию включена PHP: 8.0.2.0

NGINX не работает при установке WordPress

Признак: nginx[5700]: nginx: [emerg] нет порта в восходящем «php-fpm» в /etc/nginx/default.d/php.conf:15

... в этом случае некоторые инструкции по установке в Интернете игнорируют тот факт, что php-fpm должен быть установлен на RHEL 9. Он не включен в поставляемую установку PHP. Без этого /var/run/php-fpm/www.sock (автоматически созданный php-fpm отсутствует. Однако установка отсутствующего php-fpm все равно приводит к сбою.

Файл php.conf по умолчанию в разделе:

местоположение ~ .(php|phar)(/.*)?$ {

есть линия...

fastcgi_pass php-fpm;

К сожалению, для этого необходимо (в некоторых случаях):

fastcgi_pass /var/run/php-fpm/www.sock

В общем, вам нужен php-fpm И уточнение пути для раздела fastcgi php.conf, чтобы вернуться к работе.

Я публикую эту альтернативную причину ошибки на случай, если она поможет кому-то еще!

Проблема заключается в наличии более одного файла конфигурации в /etc/php/7.4/fpm/pool.d.

         usr@server:/etc/php/7.4/fpm/pool.d$ ls
      www.conf  foor-php-fpm.conf  bar-php-fpm.conf.bak

Решение

Шаг 1. Удалите или переименуйте все остальные файлы .conf, оставив только www.conf.

      usr@server:/etc/php/7.4/fpm/pool.d$ sudo mv other-php-fpm.conf other-php-fpm.conf.bak2

Шаг 2:systemctl restart php7.4-fpm.service

Сделанный!

      user@server:~$ systemctl status php7.4-fpm.service

● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-12-31 16:16:22 UTC; 6s ago
       Docs: man:php-fpm7.4(8)
    Process: 381508 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.4/fpm/pool.d/www.conf 74 (code=exited, status=0/SUCCESS)
   Main PID: 381487 (php-fpm7.4)
     Status: "Ready to handle connections"
      Tasks: 3 (limit: 4568)
     Memory: 12.1M
     CGroup: /system.slice/php7.4-fpm.service
             ├─381487 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
             ├─381506 php-fpm: pool www
             └─381507 php-fpm: pool www

Это решение применимо и к php-fpm-7.2.

Другие вопросы по тегам