Не запускается php5-fpm

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

Вообще вывод команды # service php5-fpm restart не очень-то информативен. Он всегда выдает надпись что fpm был запущен, даже если это не так. Чтобы найти ошибку понадобилось вызывать исполняемый файл php5-fpm напрямую с параметром -t. При таком вызове он просто тестирует конфиги и выдает сообщения об ошибках если они есть.

Найти реальное расположение исполняемого файла можно так. Открываем вот этот скрипт редактором:

# nano /etc/init.d/php5-fpm

В первых строчках кода должны быть определены переменные:

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="PHP5 FastCGI Process Manager"
NAME=php5-fpm
DAEMON=/usr/sbin/$NAME
DAEMON_ARGS="--daemonize --fpm-config /etc/php5/fpm/php-fpm.conf"
PIDFILE=/var/run/php5-fpm.pid
TIMEOUT=30
SCRIPTNAME=/etc/init.d/$NAME

Из них видно, что исполняемый файл называется «php5-fpm» (ну логично чо) и находится он в директории «/usr/sbin/». Выходит его можно вызвать без указания пути.
Пробуем сделать вызов с параметром «-t»:

# php5-fpm -t
[22-Feb-2015 10:48:20] ALERT: [pool sitename] pm.max_spare_servers(0) must be a positive value
[22-Feb-2015 10:48:20] ERROR: failed to post process the configuration
[22-Feb-2015 10:48:20] ERROR: FPM initialization failed
#

И вот проблема становится ясна.

Чтобы больше не париться с отдельными вызовами проверки и перезапуска, я наваял скрипт обертку, который сначала запускает проверку конфигов и только в случае успеха перезапускает fpm.
Вот его код:

#!/bin/sh
php5-fpm -t && service php5-fpm restart

Я обозвал его «fpm-restart» и сохранил в директорию «/usr/sbin». Теперь мой сервер не упадет, если я допущу ошибку в конфиге.
После исправления ошибки запускаю свой скрипт и вижу, что теперь все хорошо.

# fpm-restart
[22-Feb-2015 10:54:05] NOTICE: configuration file /etc/php5/fpm/php-fpm.conf test is successful
php5-fpm stop/waiting
php5-fpm start/running, process 1511
#

Спасибо за внимание 🙂

This entry was posted in php5-fpm. Bookmark the permalink.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать язык разметки Markdown

Protected by WP Anti Spam