作者mauve (mauve是淡紫色)
看板PHP
標題[請益] php呼叫某函式後,常導致內存溢出
時間Tue Jan 1 22:05:04 2019
小弟不才
對於架站這種東西一知半解
最近在幫自己的伺服器添加gzip的功能
照了網路上的教學調整了某些參數
後來不知道為什麼網站會偶爾出現全白的頁面
通常這時候都必須重新啟動Apache才能恢復
翻了一下log檔,發現伺服器不斷冒出一個錯誤訊息
大概就是說「out of memory」
並指出是哪一行php程式導致的
後來去叫出那個檔案
發現是呼叫 ob_end_flush(); 時發生的
之前也遇過到某個頁面的時候
該網頁會只讀取一半
後來去爬文
發現也是某一個插件在呼叫 ob_end_flush(); 的時候出錯
把那一行改成
remove_action( 'shutdown',
'wp_ob_end_flush_all', 1 );
之後
就沒這個問題了
但這次又是類似的問題發生在其他地方
基本上問題完全都是環繞在我開起了gzip後
才在呼叫 ob_end_flush(); 後發生了錯誤
感覺一定是我哪裡設定有誤
有沒有高手可以幫幫我?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.10.32.99
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PHP/M.1546351508.A.358.html
1F:推 KKFN: 短期解法:呼叫該函式前直接把記憶體限制用量提高 01/02 10:24
2F:推 wotupset: 處理的檔案太大 記憶體中的站存檔放不下 01/02 13:52
php.ini裡的memory limit提升到512M,還是會出現錯誤
可能是因為我因為那行出錯就把ob_end_flush()去掉導致的
現在加回來了
但是WordPress反而繼續出現錯誤
ob_end_flush(): failed to send buffer of zlib output compression (1)
把zlib.output_compression關閉就沒這個問題
但這樣會失去gzip
也照網路上說的加入remove_action(..., ...); 到主題資料夾的function.php裡面
但還是沒用
這要怎麼解qq
※ 編輯: mauve (125.231.34.147), 01/02/2019 17:28:05
3F:→ jfcherng: 看起來Apache是你可控的, 為什麼不讓Apache做gzip 01/02 18:32
4F:→ jfcherng: 而是讓 PHP 做 gzip 呢 01/02 18:32
大大您好像突破我的盲點了
本身對整個環境還不是很理解
有空我會試看看的
5F:推 imhaha: 同上 01/02 19:37
※ 編輯: mauve (125.231.34.147), 01/03/2019 08:44:20