簡體   English   中英

PHP無法打開流:打開的文件太多

[英]PHP failed to open stream: Too many open files

我有一個錯誤的問題:PHP無法打開流:太多打開的文件。

我在stackoverflow上看了各種答案,但我無法解決這個問題。 我主要試圖增加最大限制。 打開文件:

我已經編輯了/etc/security/limits.conf,我指定了這個:

*       soft    nofile      10000
*       hard    nofile      30000

保存並注銷/重新啟動該框后,命令:

ulimit -n

仍打印1024.我不知道為什么這沒有效果,我認為這是我得到PHP錯誤的原因。 如果需要,我可以粘貼整個文件或任何其他配置文件。 我使用PHP 5.6,nginx 1.8.0和php-fpm。

現在適合我的解決方案是手動重啟nginx:

service nginx restart

在這之后再次工作。 主要是當我運行單元測試,測試或我向Web服務器發出大量請求時會出現問題。

聽起來像一個長時間運行的進程是打開文件而不是正確關閉它們。 你對這個過程可能有什么想法嗎? 你正在做一些你期望打開大量文件的東西嗎? 聽起來這可能是您的單元測試庫的問題。 我不熟悉那個; 你有沒有專門針對你正在使用的庫/軟件搜索這個錯誤? 當你談到“向Web服務器發出大量請求”時,那些是所有“並發”請求,這可能會導致大量文件句柄被打開?

最終,我認為你需要解決問題 - 如果確實是一個問題 - 打開比你期望的文件更多的文件。

您應該為運行php進程的用戶增加每用戶文件限制。 檢查您的php進程正在運行的用戶並增加它們的限制。 你可以這樣做。 $ cat /etc/security/limits.conf * hard nofile 500000 * soft nofile 500000 root hard nofile 500000 root soft nofile 500000 www-data hard nofile 500000 www-data soft nofile 500000

參考: https//rtcamp.com/tutorials/linux/increase-open-files-limit/

解決方案是做流浪漢停止,然后再流浪ssh。 然后它打印出10000.看起來像簡單的注銷和用戶登錄是不夠的由於某種原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM