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

Как я могу узнать, почему мой php5-fpm не запустился?

У меня время ожидания шлюза 504, когда я пытаюсь связаться с моим сервером, небольшая проверка не нашла никаких журналов в журналах php5-fpm, но, чтобы убедиться, я попытался перезапустить его. когда я пытаюсь перезапустить его:

sudo service php5-fpm restart

я получил [fail] но когда я сделаю

sudo service php5-fpm stop
sudo service php5-fpm start

Я не получаю ошибки.

как я могу исследовать это, если нет логов? Что я могу сделать?

Вы проверили свой журнал ошибок файл для php-fpm? Местоположение этого файла должно быть указано в вашем php-fpm.conf (в конфигурации Ubuntu это /etc/php5/fpm/php-fpm.conf, файл журнала - / var / log / php5-fpm / log), также проверьте свой log_level, если отключено (; log_level), включите его и измените на отлаживать. После этого попробуйте перезапустить службу php5-fpm и проверьте свои журналы.

Вы также можете попробовать запустить php5-fpm в режиме переднего плана:

# php5-fpm -y /etc/php5/fpm/php-fpm.conf

Может быть, это покажет вам что-нибудь интересное.

Стандартная процедура устранения неполадок:

  • Проверьте файл журнала. Если вы не знаете, где он находится, проверьте конфигурацию или определите наверняка, найдите pid с ps aux | grep php-fpm, тогда сделай lsof -p $PID | grep log (опустите grep, если он ничего не показывает).
  • В 99% случаев файлы журнала покажут вам причину. Если нет, поищите уровень ведения журнала в конфиге, поднимите его и попробуйте еще раз.
  • Возможно, он немедленно завершится, и вы не можете заставить PID проверить процесс. Вы также можете попробовать запустить процесс на переднем плане, но это означает выяснить, какие переключатели командной строки вам нужно использовать. Обычно вам просто нужно указать его на существующую конфигурацию.
  • Если ни файл журнала, ни stdout / stderr (вывод переднего плана) не содержат каких-либо подсказок, пришло время strace ... но это другой пост.

Эта заметка мне помогла: https://bugs.launchpad.net/nginx/+bug/1366651

В моем случае при обновлении до nginx> 1.6.1 параметры, которые передаются в php5-fpm, находятся в fastcgi.conf вместо fastcgi_params, в результате чего PHP всегда возвращает 200 (хорошо), но никогда не возвращает никакого содержимого, потому что SCRIPT_FILENAME больше не задан.

Надеюсь, это поможет и кому-то другому.

Для меня проблема была моя php-fpm.conf файл не использовал имя файла конфигурации по умолчанию - он был назван /etc/php5/fpm/php5-fpm.conf ( php5-fpm.conf против php-fpm.conf )

php5-fpm -t  

[26-Jul-2014 22:39:16] ERROR: failed to open configuration file '/etc/php5/fpm/php-fpm.conf': No such file or directory (2)
[26-Jul-2014 22:39:16] ERROR: failed to load configuration file '/etc/php5/fpm/php-fpm.conf'
[26-Jul-2014 22:39:16] ERROR: FPM initialization failed

Я переименовал файл conf в php-fpm.conf и это устранило проблему.

sudo mv /etc/php5/fpm/php5-fpm.conf /etc/php5/fpm/php-fpm.conf
sudo service php5-fpm restart
 * Restarting PHP5 FastCGI Process Manager php5-fpm                                                                           [ OK ]

У меня возникла проблема отсутствия файлов журнала, затем я заметил, что я обращаюсь к URL-адресу через HTTPS вместо HTTP, и этот протокол не был настроен в Nginx, поэтому PHP5-FPM не получал трафик.

Может кому-нибудь помочь.

Может случиться так, что при dist-upgrade Ubuntu пакет php5-fpm будет удален, потому что php 7 вместо этого использует php-fpm. попробуйте запустить это на консоли:

php5-fpm

Если он не существует, вы, вероятно, уже используете php 7, поэтому установите

apt-get install php-fpm

который установит версию php7