[請益] php呼叫某函式後,常導致內存溢出

看板PHP作者 (mauve是淡紫色)時間5年前 (2019/01/01 22:05), 5年前編輯推噓3(302)
留言5則, 4人參與, 5年前最新討論串1/1
小弟不才 對於架站這種東西一知半解 最近在幫自己的伺服器添加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://www.ptt.cc/bbs/PHP/M.1546351508.A.358.html

01/02 10:24, 5年前 , 1F
短期解法:呼叫該函式前直接把記憶體限制用量提高
01/02 10:24, 1F

01/02 13:52, 5年前 , 2F
處理的檔案太大 記憶體中的站存檔放不下
01/02 13:52, 2F
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

01/02 18:32, 5年前 , 3F
看起來Apache是你可控的, 為什麼不讓Apache做gzip
01/02 18:32, 3F

01/02 18:32, 5年前 , 4F
而是讓 PHP 做 gzip 呢
01/02 18:32, 4F
大大您好像突破我的盲點了 本身對整個環境還不是很理解 有空我會試看看的

01/02 19:37, 5年前 , 5F
同上
01/02 19:37, 5F
※ 編輯: mauve (125.231.34.147), 01/03/2019 08:44:20
文章代碼(AID): #1SAtEKDO (PHP)
文章代碼(AID): #1SAtEKDO (PHP)