注意:我指的是 Zend Server 中以前的组件,但现在是一个独立模块,开源,并将捆绑PHP 5.5,它比更广泛使用的APC具有性能/可用性优势。
现在我的问题来了,我似乎无法让 Zend Optimizer+ 与我的 codeigniter 驱动(PHP 框架)网站正常工作,我的调试配置如下:
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 日志(但没有其他内容,没有段错误,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 测试也正确通过了)。
有人使用过 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,请帮助迁移,尽管我没有在这里看到与编程相关的错误。)
答案1
在使用未安装 Suhosin 补丁的 PHP 5.3/5.4 进行测试后,我可以确认原始问题确实是由 Suhosin 引起的,不幸的是,常见的解决方法suhosin.simulation = On
无法修复与 Zend O+ 的这种不兼容问题。
详细信息可在此 github 票证中找到:https://github.com/zend-dev/ZendOptimizerPlus/issues/63,如果你感兴趣的话。