[英]PHP / CentOS - failed to open stream: Too many open files
不清楚这是PHP / Apache问题还是文件系统问题。 我正在编写一个脚本来检查LDAP服务器的参照完整性,所以我提取了很多数据。 我正在使用PHP 5.3.8,Apache 2.2.3和CentOS 5.7(我认为那是正确的版本)
当我运行脚本时,我得到一个PHP警告,内容为:
警告:include(“ fileName”):无法打开流:第50行的“ fileName”中打开的文件过多警告:include():无法打开包含的“ filename”(include_path ='。:/ usr / local / zend / share / ZendFramework / library:/ usr / local / zend / share / pear')在第50行的“ fileName”中
我削减了很多代码以包含更少的文件,而且似乎没有什么不同。 我认为这可能是因为我提取了多少数据(可能是由于抖动),所以我限制了它并输出了7.5 MB的峰值内存使用量(在我限制了返回结果之后),这是一个不错的块,但不是足以杀死脚本。
在所有这些中,我搜索了这个问题,发现它可能是由文件系统打开文件限制引起的,该文件限制可以通过称为ulimit的命令进行更改。 默认值为1024。我为所有用户将mine设置为40000。 仍然没有帮助。 删除后,我的PHP脚本总共使用了11个文件。 我只是不明白为什么会这样。
有任何想法吗?
提前致谢,
约旦
您是否为该用户修改了软限制和硬限制? 另外,如果这是一个在用户“ apache_user”下运行的Apache进程,则您将需要停止Apache,注销,重新登录(确保软/硬限制均已到位)并启动Apache进程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.