Не могу разобраться с PHP-FPM

Ralph

Дикий столяр
Не могу разобраться с PHP-FPM

Доброе утро.Вот никак не могу разобраться,работает у меня PHP-FPM или нет,может вы подскажете :)
Понадобилось запустить автономные php и nginx.И то и другое вроде собралось без проблем.Ладно,пробую php-fpm start,ответ: Starting php-fpm . . . . . . . . . . . failed .Пробую php-fpm restart,ответ: pid file not found,php-fpm not running ? Starting ....... failed

смотрю логи-вроде все мирно : php-fpm running child started child started...

В ps процессы php-cgi в наличии.Запускаю php-скрипт через cli и web-работает.Вопрос в том,если работает,то почему тогда failed и pid file not found и чем это чревато ?

И другой вопрос.Ладно,решил я,будем считать,что работает.Но нет pcre-функций.Вроде ничего военного-ложу файл pcre.so в директорию,которую указал в php-ini,добавляю в extensions.ini нужную строку,рестартую php,делаю php -m -никаких ругательств типа unable to load,чистый вывод,но только те модули,которые были указаны при компиляции,нужного мне pcre нет.
phpinfo - loading clodiguration file : php.ini loading additional file extensions.ini,php.ini.В чем может быть проблема ?
 

Ralph

Дикий столяр
A что с ним может быть не так ? Когда при первом запуске я ошибся в конфиге,он сразу возмутился,а сейчас вроде молчит как партизан :(

<value name="pid_file">/usr/local/mm/tmp/php-fpm.pid</value> pid-файл в указанной директории создается,но при рестарте php,получается,его в упор не видит
 

dimagolov

Новичок
Ralph, ты бы рассказал на какой системе ты пускаешь php-fpm и откуда он там взялся, так как в релизах php его еще нет.
 

Ralph

Дикий столяр
Да обычный патченый 5.2.13 ...
С первым вопросом только что разобрался,надо было всего лишь посмотреть текст запускающего скрипта.Забыл указать при конфигурировании опцию --with-fpm-pid а после думал,что указания своего пути в конфиге будет достаточно.Еще теперь разобраться бы,почему не подгружаются расширения
 

dimagolov

Новичок
Да обычный патченый 5.2.13
пипец объяснил. особенно с учетом того, что "менстримных" версий собственно php-fpm было минимум 2 и того, что сам по себе патч никогда отродясь не содержал startup скриптов, по крайней мере под ту же FreeBSD.

с такими объяснениями смотри у себя сам, что ты там пускается, чем и с каким результатом, нас то о чем спрашивать?
 

Ralph

Дикий столяр
Автор оригинала: dimagolov
пипец объяснил. особенно с учетом того, что "менстримных" версий собственно php-fpm было минимум 2 и того, что сам по себе патч никогда отродясь не содержал startup скриптов, по крайней мере под ту же FreeBSD.
На VDS FreeBSD-8.0 скачал php-5.2.13.tar.gz с php.net,с оф.сайта скачал патч версии 0.5.13,наложил его,configure,make,make install ...

так что получается,словам "запустите php-fpm start(вероятно,его местоположение указано в $PATH)" с официального сайта верить нельзя ?

Вопрос вот в чем.Вот простейший скрипт
var_dump(get_loaded_extensions());var_dump(dl('pcre.so));var_dump(dl('gd.so'));phpinfo();

extension_dir установлен в /usr/local/mm/lib/php/external,и видно,что dl именно там пытается найти и находит расширения,но почему же тогда при старте php игнорируется содержание extensions.ini (как видно,найденного и разобранного)?
 

Wicked

Новичок
Loaded Configuration File /usr/local/mm/etc/php.ini
additional .ini files parsed /usr/local/mm/etc/extensions.ini, /usr/local/mm/etc/php.ini
эти и менял?

и что выдает php -i | grep ini ?
 

Ralph

Дикий столяр
Так как собирал php и nginx в директории mm,то и менял естественно там

/usr/local/mm/bin/php-cgi -i | grep ini = Configuration File (php.ini) Path => /usr/local/mm/etc
Loaded Configuration File => /usr/local/mm/etc/php.ini
Scan this dir for additional .ini files => /usr/local/mm/etc
additional .ini files parsed => /usr/local/mm/etc/extensions.ini,
/usr/local/mm/etc/php.ini
 

dimagolov

Новичок
Ralph, ну нет у тебя нужных хедеров для сборки pcre & gd судя по всему. и вообще /usr/local/mm/lib/php/external/pcre.so и /usr/local/mm/lib/php/external/gd.so в наличии и если да, то работают ли они скажем в cli режиме?
 

Ralph

Дикий столяр
pcre.so от другой сборки php со включенным zts,а gd.so в директории не существует.Я специально подключил в php.ini и extensions.ini несуществующие расширения,чтобы вызвать сообщения об ошибке. dl на это ругается, а php -m спокоен как удав и плевать ему на любое расширение,не указанное при конфигурировании перед сборкой
 

dimagolov

Новичок
Ralph, на сколько я помню тот патч, там можно собирать расширения или статически или динамически (через .so). у тебя судя по phpinfo все собрано статически, а вот pcre & gd там отсутствуют.

я под freeBSD cобирал php-fpm из порта. почитай архив рассылки [email protected], брал порт оттуда.
 

fixxxer

К.О.
Партнер клуба
А, у тебя FreeBSD. Тогда бери порт (как сказал dimagolov - искать в рассылке), подправляй в нем версии и хэши при необходимости (версия в Makefile, хэши в distinfo), и собирай им. Это по крайней мере будет проще, ибо не придется объяснять тебе, какие пункты ты сделал руками неправильно))
 

Ralph

Дикий столяр
Всем спасибо,разобрался ... Отлично подключаются как статические,так и динамические расширения . Вся проблема была в битом пакете /usr/ports/devel/pcre
 

fixxxer

К.О.
Партнер клуба
А вот не надо мешать самосбор и порты. Либо все руками либо все из портов.
 
Сверху