帝国CMS换云主机 出现Cannot modify header information – headers already sent by…….何解?

云主机

将学而行(www.xueerxing.com)网站换了个云主机,初次体验感觉网站打开就是快了很多,包括后台的操作。不过高兴之后,也有小小的麻烦出现。

在将新网站及数据库搬迁至云主机后,进入帝国CMS后台,数据更新后发表文章,发现有这样的提示,文字显示是红色的:

Cannot modify header information – headers already sent by……..后面还有一大串,会指出是哪个PHP文件哪一行出错!

Cannot modify header information
像这样后台功能一直正常和稳定的网站,换至新空间,却出现了错误信息,一般而言,这和建站系统(如帝国CMS)没有什么关系,主要还是新空间的环境配置和旧主机空间配置有差异导致,即,和原来的空间配置参数不一样。

网上搜索问题解决方案,果然如此,是说与php.ini的设置有关。

PHP.INI是什么东东?简单来说就是PHP的全局配置文件。PHP根据PHP.INI里的配置信息,来处理各种PHP文件。

说是要修改PHP.INI文件,将output_buffering的值设为4096。

作为PHP运行的关键性文件,PHP.INI在一般的虚拟空间里,是不支持修改的。或者说,通过FTP空间,你根本找不到这个文件在哪儿。

但是,没关系,哥新换的是云主机,云主机就是这个好,一切都可以自定义DIY,一切权限都掌握在自己手中,可以很直观方便地修改网站所运行的环境信息配置文件。

于是打开PHP.INI文件,发现是这样的:

output_buffering = Off

原来是给关了,于是改为:

output_buffering = 4096

保存。

注:修改PHP.INI文件后,别指望它能自动就生效,必须重启WEB。也就是重启PHP运行环境,如下图(华哥用的云主机是WDCP主机管理系统)。

修改PHP.INI

附:output_buffering设置说明:
Off: 表示关闭PHP输出缓存
On: 打开无限大的输出缓存
4096: 打开大小为4096Byte的输出缓存
默认情况下,php buffer是开启的,而且该buffer默认值是4096,即4kb。但是华哥新换的PHP云主机,默认设置则是关闭的,也是醉了。

 

这篇文章对俺有帮助,打赏犒劳下作者吧〜

本文链接:肖运华 » 网站设计制作优化分析 » 帝国CMS换云主机 出现Cannot modify header information – headers already sent by…….何解?
原创文章,转载请注明:http://www.xiaoyunhua.com/1321.html

发表评论

电子邮件地址不会被公开。