推荐应用
Discuz 使用 PHP 5.4 版本需要注意的问题
发布于 2014-06-10
由于PHP 5.4版本的函数有一些变动和BUG,目前 Discuz X 还不建议使用PHP 5.4版本。
如果一定要采用PHP 5.4版本,目前有以下建议:
1,采用PHP 5.4.6最新版本可解决Discuz X 2.5 和 UCHome 2.0可能出现的重复显示问题,该版本8月16号发布。
www.php.net/downloads.php
PHP 5.4.6更新内容:www.php.net/ChangeLog-5.php
Zlib
Fixed bug #55544 (ob_gzhandler always conflicts with zlib.output_compression).
2,PHP 5.4 版本 内置函数htmlspecialchars和htmlentities,默认会使用utf-8来处理字符串。而之前的版本全都是使用ISO-8859-1编码。
这会造成非UTF8程序出现显示不完整,或者直接程序功能不可用的问题。
解决办法:
修改PHP 5.4的源码 ,打开ext/standard/html.c
将 return cs_utf_8;
改为 return cs_8859_15;
这样PHP5.4就采用了原来php 5.3及以下的默认编码。
3,Discuz X2.5 大量使用了缓存,安装缓存软件有利于提升性能,但是不要安装eAccelerator,在X25下会出现问题。
APC 和 Xcache 在PHP 5.4下要采用最新版本。
4,在 php 5.3.9 之后。php.ini 中多了一项设置如下
max_input_vars 默认是1000
如果需要post的东西特别多,比如板块很多,或者是提交的东西很多的时候,会出现post不过去的情况。建议改为10000
5,Suhosin-Patch 会增强PHP的安全性,也会限制POST、GET的个数长度,如果出现莫名其妙的问题,把这补丁关掉。
如果一定要采用PHP 5.4版本,目前有以下建议:
1,采用PHP 5.4.6最新版本可解决Discuz X 2.5 和 UCHome 2.0可能出现的重复显示问题,该版本8月16号发布。
www.php.net/downloads.php
PHP 5.4.6更新内容:www.php.net/ChangeLog-5.php
Zlib
Fixed bug #55544 (ob_gzhandler always conflicts with zlib.output_compression).
2,PHP 5.4 版本 内置函数htmlspecialchars和htmlentities,默认会使用utf-8来处理字符串。而之前的版本全都是使用ISO-8859-1编码。
这会造成非UTF8程序出现显示不完整,或者直接程序功能不可用的问题。
解决办法:
修改PHP 5.4的源码 ,打开ext/standard/html.c
将 return cs_utf_8;
改为 return cs_8859_15;
这样PHP5.4就采用了原来php 5.3及以下的默认编码。
3,Discuz X2.5 大量使用了缓存,安装缓存软件有利于提升性能,但是不要安装eAccelerator,在X25下会出现问题。
APC 和 Xcache 在PHP 5.4下要采用最新版本。
4,在 php 5.3.9 之后。php.ini 中多了一项设置如下
max_input_vars 默认是1000
如果需要post的东西特别多,比如板块很多,或者是提交的东西很多的时候,会出现post不过去的情况。建议改为10000
5,Suhosin-Patch 会增强PHP的安全性,也会限制POST、GET的个数长度,如果出现莫名其妙的问题,把这补丁关掉。