понедельник, 4 декабря 2017 г.

Осваиваем php-fpm

Все кому надо уже перешли, но мало ли... Ну и как обычно, хождение по граблям.

Вообще, в центос в /etc/php-fpm.d/www.conf есть базовый конфиг, позволяющий за 5 минут запустить замену апача без suexec и assigniserid, воркеры будут от пользователя apache.

офдока по параметрам

Увы, error_log апача на порядки информативнее. Можно считать, что у php-fpm логов просто нет. Если всё-же включить его error_log в debug, то может будет спамить fpm_pctl_perform_idle_server_maintenance(), это норма. Вообще есть опция catch_workers_output = yes, но мне она ни разу не помогла.

file not found
Можно прицепиться к воркеру и посмотреть, что он делает, для этого сначала получаем пид воркера
ps auxwww|grep php-fpm
и смотрим по имени нашего пула (для удобства можно поставить pm.start_servers = 1 и pm.min_spare_servers = 1) и потом
strace -p ххххх
там будут строки вида
stat("", 0x7ffd86477a70)                = -1 ENOENT (No such file or directory)
если есть именно такая строка (с "") - скорее всего, виновата опция chroot, смотрим куда оно лезет сначала, комментируем chroot и правильно заполняем chdir. Потом уже разбираемся с причинами. Не забываем выставить все переменные, завязанные на путях, типа php_value[session.save_path] (скорее всего, путь будет прилетать через опции вида fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name у nginx)


Когда запросы показывают белую страницу
1) проверить, что испольузется именно fastcgi_pass, даже когда с айпи адресом, и нет префиксов (https итд)
2) запустить с базовым конфигом, пример тут
https://www.linux.org.ru/forum/general/12500100
и потом сверять со своим

Комментариев нет:

Отправить комментарий