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

10

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

sudo service php5-fpm restart

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

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

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

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

Лиад Ливнат
источник

Ответы:

17

Вы проверили свой файл error_log на php-fpm ? Расположение этого файла должно быть объявлено в вашем php-fpm.conf (в Ubuntu config это /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

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

jamzed
источник
1
В моем случае эта команда запустила php5-fpm, тогда как service php5-fpm startнет. Спасибо!
Дэвид Томас
Дэвис, похоже, у меня работает +1! Но .. jammed дал мне решение, я нашел ошибку +1! Спасибо вам всем!
Tenaciousd93
Если вы запустите FPM, используя задание upstart, то журналы запуска php-fpm будут записаны в / var / log / upstart /
Ashwin Дата
Для использования php7.0php-fpm7.0 -F -c /etc/php/7.0/fpm/php-fpm.conf
Yadvendar
4

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

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

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

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

Я надеюсь, что это также помогает кому-то еще.

Себастьян ван Доорн
источник
2

Для меня проблема была в том, что мой php-fpm.confфайл не использовал имя файла конфигурации по умолчанию - он был назван /etc/php5/fpm/php5-fpm.conf( php5-fpm.confvs 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 ]
Дэвид Томас
источник
0

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

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

Дейв Хилдич
источник
0

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

php5-fpm

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

apt-get install php-fpm

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

rubo77
источник