不清楚这是 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 行的“文件名”中
我已经删减了很多代码以包含更少的文件,但这似乎并没有什么不同。我认为这可能是因为我提取了多少数据(可能是由于抖动)所以我限制了它并输出了 7.5 MB 的峰值内存使用量(在我限制了返回结果之后),这是一个不错的块但不是足以杀死脚本。
在这一切中,我搜索了这个问题,发现它可能是由文件系统打开文件限制引起的,该限制可以通过一个名为 ulimit 的命令进行更改。默认值为 1024。我为所有用户将我的设置为 40000。仍然没有帮助。剥离后,我的 PHP 脚本总共使用了 11 个文件。我只是不明白为什么会这样。
有任何想法吗?
提前致谢,
约旦