作者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/cn.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