PHP-fpm и HTTPS - крайне странное поведение

  • Автор темы Автор темы btsalex
  • Дата начала Дата начала
Это по ходу трассировка мастер-процесса.... попробуйте запустить fpm с одним процессом (в конфиге) - должно появится два - мастер и рабочий (второй, скорее всего). Включить трассировку на рабочий, тыкнуть тот скрипт, что не работает, выключить трассировку.
 
Хм.. вы как трассируете? Просто ktrace -p pid ? =) Без NAMI и GIO как-то сложно сказать что вообще происходит
 
Трассировал так: ktrace -t cs -p <pid>
Сделал новую: ktrace -t cnisuw -p <pid>
Скинул в личку ссылку на новую трассировку
 
Первое что в глаза бросается - про eaccelerator не говорилось, что он включен... отключите его и повторите проверки.

-~{}~ 27.02.09 17:37:

Если это не поможет... второе, что хотелось увидеть бы - трассировку того же скрипта, когда он "сработал"... и можно еще трассировку курлового скрипта.
Из проблем по данной трассировке видно только неудачные попытки получить рандомную последовательность... но если честно не знаю, насколько это необходимо.
 
Просто eaccelerator был подцеплен позже

Сделал ktrace без eaccelerator - результат тот же, в трассировке по-сути то же самое, только без упоминания eaccelerator

При отключении eaccelerator перестает отрабатывать через cli - возвращает ошибку "Segmentation fault (core dumped)", через браузер при этом php работает нормально, а тестовый скрипт по прежнему не хочет соединиться с https

Не могу понять, как сделать трассировку рабочего процесса, который отрабатывает вызов скрипта через cli? там наверняка самое интересное.
трассировка мастер-процесса при обращении через cli ничего не дала

-~{}~ 27.02.09 18:31:

при этом <?php echo "Hello 123!";?> через cli отработал нормально
 
ну как-то так
ktrace /usr/bin/php-cli 1.php

-~{}~ 27.02.09 19:00:

т.е. после отключения eccelerator стал валиться на этом скрипте php-cli? =) Может еще что-то включили? =)
 
собственно, так и делаю. но как при этом сделать трассировку, если я не знаю заранее pid процесса?
пробовал трассировать на pid рабочего процесса (и рабочий вариант с "Hello 123" и тестрируемый с "Segmentation fault") - в ktrace.out пусто, т.е., как я понял, процесс создается в момент вызова скрипта


Отключаю только extension=eaccelerator.so и eaccelerator.*

-~{}~ 27.02.09 21:41:

Да, точно, при запуске скрипта через cli создается отдельный процесс от имени текущего пользователи

-~{}~ 27.02.09 22:28:

Вообщем, дописал sleep() в скрипте и сделал трассировку удачной отработки в cli с eaccelerator
ссылка в личке

-~{}~ 27.02.09 23:51:

по трассировке явно не хватает /dev/srand

выяснил, что если php-fpm не загонять в chroot - то работает..

прикрутил /dev через mount_nullfs, теперь в трассировке ругается на /dev/srand, что "Device not configured"

-~{}~ 28.02.09 00:15:

отправил трассировку успешного отрабатывания curl, он вообще srand не запрашивает
 
Сорри, я в администрировании серверов буквально несколько дней
 
Откажитесь от чрута, если решили его сделать из "соображений безопасности". Если уж очень хочется - гуглите в сторону jail.
 
Автор оригинала: MiksIr
Откажитесь от чрута, если решили его сделать из "соображений безопасности".
Да практически только из соображений безопасности. Почему Вы считаете что стоит отказаться?
 
Ну потому что он изначально не для этого предназначался и не гарантирует, что никто оттуда не убежит (в отличие от jail), зато проблем с ненайденными библиотеками и т.д. предоставит достаточно (опять же в отличии от jail). Нормальная расстановка прав в системе- уже досаточная безопасность.
 
MiksIr Ок, спасибо за информацию, значит, скорее всего придется отказаться от chroot

Единственное - осталось разобраться с Segmentation fault..
Наконец понял как сделать трассировку вызова через cli (ситуация с отключенным eaccelerator, когда получаю Segmentation fault). Там ошибка:
CALL ioctl(0x4,TIOCGETA,0x7fffffffcbe0)
RET ioctl -1 errno 25 Inappropriate ioctl for device
Трассировка у Вас в личке.
 
После закомментирования строки:
zend_extension="/usr/local/php/lib/php/20060613/ZendExtensionManager.so"

начинает работать

-~{}~ 28.02.09 16:10:

Если zend optimizer отдельно отключить - тоже работает
 
Сверху