我有一个使用PHP的本地函数写入文件的Web应用程序,例如fopen()
,fwrite()
写入文件后,我通过做fclose()
关闭文件句柄。PHP Web应用程序抛出“打开的文件太多”
Web应用程序还在某些地方使用exec()
和shell_exec()
来执行外部程序。
该Web应用程序大部分部署在Linux服务器上。最近在生产服务器上,我们注意到一个问题,即它无法写入文件,并抛出这个错误:
"Too many open files"
所以我的问题是:是否有可能做上述操作(文件写入和通过PHP执行外部命令)可能导致这种情况,并打开太多打开的文件,我现在得到这个错误?
我已经确保在打开写入/读取文件句柄时,我关闭它们。
修复原因不是症状 – 2012-11-15 06:38:23
是的。修复代码会更有帮助,因为如果没有修复,那么它也会在将来产生问题。 –
我最近不得不打开2000多个文件并面临同样的问题,所以提出了相同的解决方案。但我同意你的看法,只有在需要的情况下才能完成。 – Naveed