我有一個使用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