将学而行(www.xueerxing.com)网站换了个云主机,初次体验感觉网站打开就是快了很多,包括后台的操作。不过高兴之后,也有小小的麻烦出现。
在将新网站及数据库搬迁至云主机后,进入帝国CMS后台,数据更新后发表文章,发现有这样的提示,文字显示是红色的:
Cannot modify header information - headers already sent by........后面还有一大串,会指出是哪个PHP文件哪一行出错!
像这样后台功能一直正常和稳定的网站,换至新空间,却出现了错误信息,一般而言,这和建站系统(如帝国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主机管理系统)。
附:output_buffering设置说明:
Off: 表示关闭PHP输出缓存
On: 打开无限大的输出缓存
4096: 打开大小为4096Byte的输出缓存
默认情况下,php buffer是开启的,而且该buffer默认值是4096,即4kb。但是华哥新换的PHP云主机,默认设置则是关闭的,也是醉了。