- PHP从OSX Lion捆绑的5.2.x版本升级到了5.4.x。
- 我必须获取适用于PHP 5.4的Zend Debugger,方法是安装Zend Server,获取ZendDebugger.so并卸载Zend Server(这是因为Zend不提供独立的php 5.4.x调试器版本)。
我看到了关于这个主题的几个threads。大多数指出代码中存在问题,其中文件句柄未被正确关闭,从而超过了打开文件限制阈值。我还发现了这个thread,它似乎表明这可能是一个zend调试器问题。也有一个bug report针对php 5.2.x进行了提交。在here的线程中,我尝试了以下操作:
$ ulimit -a
报告如下:
open files (-n) 256
另外,
sysctl -a | grep files
返回,
kern.maxfiles = 12288
kern.maxfilesperproc = 10240
kern.maxfiles: 12288
kern.maxfilesperproc: 10240
kern.num_files: 3248
另一个有趣的thread建议使用以下方法来提高此限制(目前为256):
ulimit -n 1024
我已经尝试了所有方法,但似乎没有任何作用。问题也不是一致性可重现的。
我想知道是否使用 "ulimit -n 1024" 会影响 Apache,因为根据我所读的,它会影响 shell 可以打开的文件数。
感谢任何帮助。
编辑:
1. 重新启动 Apache 有所帮助,直到再次遇到错误。 2. 让 Web 服务器闲置一段时间(没有确定的间隔)也有所帮助。