Недавно создайте стек LEMP под управлением PHP-FPM в Ubuntu 14.04 x64. Попытка получить доступ к PHP в моем корневом веб-каталоге. Браузер показывает 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 или почему он не работает на этом порту? Спасибо.
Нашел:
Чтобы указать номер порта, вам нужно отредактировать "слушай ="в /etc/php5/fpm/pool.d/www.conf, однако я обнаружил, что теоретически более эффективно разрешить Nginx взаимодействовать через сокеты Unix, поэтому я поменял местами
127.0.0.1:9000
с участием
/var/run/php5-fpm.sock
Это был первый шаг ...
Затем мне пришлось заменить следующие строки в файле конфигурации моих сайтов (сайты доступны / по умолчанию):
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 порт.