今晚进入站点后台,页面上方居然显示这个东西,头大了。
看也看不懂,真不知道从哪里入手了,幸好有万能的百度,试过各种方法都没能解决。
后来看了一篇文章说是跟PHP输出缓冲区有关,还好一直有随时备份的好习惯,那就试试吧,实在不行就恢复下。
到控制台php.ini设置页面启用输出缓冲,然后刷新页面还真好了。
出现这个错误的原因是, 在header之前已经输出了某些数据,而输出这些数据的同时, apache将会同时发送一个响应状态到浏览器上(既然有输出,即这个请求是有效的),而其后你又再次使用header函数发送http头,则会返回这个错误,错误的意思是:HTTP头已经发送出去了,你不能对他再做修改。
为什么使用缓冲区可以避免这个错误呢?
因为header函数是不受缓冲区影响的,当一碰到header函数的时候,PHP马上执行apache发送这一个http头都浏览器.而输出的数据PHP打开输出缓冲区后, 这些数据将会存放在缓冲区,等待输出.这样就可以避免了之前所发生的错误。
因为我用的是阿里云的主机,修改php.ini是受限制的,只有很少的几项能改。
其他主机可参考php.ini输出缓存(output_buffering)设置用法
wordpress异常页面导致服务器路径泄漏解决办法: