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

MiksIr

miksir@home:~$
Это по ходу трассировка мастер-процесса.... попробуйте запустить fpm с одним процессом (в конфиге) - должно появится два - мастер и рабочий (второй, скорее всего). Включить трассировку на рабочий, тыкнуть тот скрипт, что не работает, выключить трассировку.
 

MiksIr

miksir@home:~$
Хм.. вы как трассируете? Просто ktrace -p pid ? =) Без NAMI и GIO как-то сложно сказать что вообще происходит
 

btsalex

Новичок
Трассировал так: ktrace -t cs -p <pid>
Сделал новую: ktrace -t cnisuw -p <pid>
Скинул в личку ссылку на новую трассировку
 

MiksIr

miksir@home:~$
Первое что в глаза бросается - про eaccelerator не говорилось, что он включен... отключите его и повторите проверки.

-~{}~ 27.02.09 17:37:

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

btsalex

Новичок
Просто eaccelerator был подцеплен позже

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

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

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

-~{}~ 27.02.09 18:31:

при этом <?php echo "Hello 123!";?> через cli отработал нормально
 

MiksIr

miksir@home:~$
ну как-то так
ktrace /usr/bin/php-cli 1.php

-~{}~ 27.02.09 19:00:

т.е. после отключения eccelerator стал валиться на этом скрипте php-cli? =) Может еще что-то включили? =)
 

btsalex

Новичок
собственно, так и делаю. но как при этом сделать трассировку, если я не знаю заранее 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 не запрашивает
 

btsalex

Новичок
Сорри, я в администрировании серверов буквально несколько дней
 

MiksIr

miksir@home:~$
Откажитесь от чрута, если решили его сделать из "соображений безопасности". Если уж очень хочется - гуглите в сторону jail.
 

btsalex

Новичок
Автор оригинала: MiksIr
Откажитесь от чрута, если решили его сделать из "соображений безопасности".
Да практически только из соображений безопасности. Почему Вы считаете что стоит отказаться?
 

MiksIr

miksir@home:~$
Ну потому что он изначально не для этого предназначался и не гарантирует, что никто оттуда не убежит (в отличие от jail), зато проблем с ненайденными библиотеками и т.д. предоставит достаточно (опять же в отличии от jail). Нормальная расстановка прав в системе- уже досаточная безопасность.
 

btsalex

Новичок
MiksIr Ок, спасибо за информацию, значит, скорее всего придется отказаться от chroot

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

btsalex

Новичок
После закомментирования строки:
zend_extension="/usr/local/php/lib/php/20060613/ZendExtensionManager.so"

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

-~{}~ 28.02.09 16:10:

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