Примечание: я говорю о компоненте, ранее использовавшемся в Zend Server, но теперь это отдельный модуль и с открытым исходным кодом, и будет в комплекте с PHP 5.5, он имеет преимущество в производительности / удобстве использования по сравнению с более широко используемыми APC.
Теперь вот моя проблема: мне кажется, что Zend Optimizer + не работает должным образом с моим сайтом на базе codeigniter (PHP framework), моя конфигурация отладки выглядит следующим образом:
zend_optimizerplus.enable=1
zend_optimizerplus.memory_consumption=128
zend_optimizerplus.interned_strings_buffer=8
zend_optimizerplus.max_accelerated_files=4000
zend_optimizerplus.revalidate_freq=10
zend_optimizerplus.fast_shutdown=1
zend_optimizerplus.enable_cli=1
zend_optimizerplus.optimization_level=0
zend_optimizerplus.error_log=/var/log/zendop.log
После включения ZO + я начал видеть журналы php-fpm, подобные этим (но ничего больше, без ошибки segfault, без записей в журнале ошибок ZO +):
[13-Mar-2013 00:58:45] WARNING: [pool www] child 6734 exited with code 1 after 176.326628 seconds from start
[13-Mar-2013 00:58:45] NOTICE: [pool www] child 6761 started
В основном рабочий процесс php был остановлен и перезапущен. И вся страница кажется выводимой только частично. Я включил отображение ошибок php с помощью error_reporting(E_ALL & ~E_NOTICE);
но по-прежнему не вижу ошибок от самого PHP.
Все, что я могу найти в журнале Nginx, это такие записи:
2013/03/13 00:22:47 [error] 1761#0: *14 readv() failed (104: Connection reset by peer) while reading response header from upstream, client: [my ip address], server: [my server name], request: "GET /leave HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: [my host name].
2013/03/13 00:22:47 [error] 1761#0: *17 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: [my ip address], server: [my server name], request: "GET /leave HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: [my host name].
Я не могу понять, что происходит, и могу подтвердить, что сайт работает без ZO +, а исходный код ZO + компилируется и устанавливается правильно (make test также прошел правильно, хотя тестов для запуска не так много ).
Кто-нибудь имел опыт работы с Zend Optimizer +? Я удивлен, что нигде на этом сайте не упоминается о модуле, который скоро будет в комплекте с PHP.
php -v
PHP 5.3.10-1ubuntu3.5 with Suhosin-Patch (cli) (built: Jan 18 2013 23:40:19)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
nginx -v
nginx version: nginx/1.1.19
(Если этот пост принадлежит stackoverflow, пожалуйста, помогите перенести, хотя я не вижу здесь ошибки, связанной с программированием.)
После тестирования с PHP 5.3 / 5.4 без патча Suhosin я могу подтвердить, что исходная проблема действительно вызвана Suhosin, и, к сожалению, общий обходной путь suhosin.simulation = On
не исправит такую несовместимость с Zend O +.
Подробности можно найти в этом билете на github: https://github.com/zend-dev/ZendOptimizerPlus/issues/63, если вам интересно.