• 欢迎访问MACD实战投资网站,推荐使用最新版谷歌Chrome浏览器访问本网站,关注公众号 丁火甲木庚金 www.macd11.com/subscriptions

(原创)nginx+php5.3.x运行Discuz程序乱码short_open_tag解决

原创总结 丁火 15年前 (2010-06-22) 3980次浏览 0个评论

之前本人有个使用Discuz程序的论坛挂在别人一台win2003服务器上,跑的是WAMP。因为忙很久没有打理。后来因为部分数据丢失就关闭了。前几天又想重新开,在硬盘上找到了老的数据,是2009年11月的。重新上传到本blog使用的服务器(本人购买的美国VPS服务器),运行出现如下乱码:

IE8下:

Firefox 3.6下:

运行环境是LNMP,相同环境下的WordPress程序http://www.macd11.com却运行很正常,奇怪了。接着Google了一下,网上很多人说这个问题是php版本兼容性导致。因为我使用的是php 5.3.x版本。有些人说把php版本降低到5.2.x就好了。但我觉得5.3版本应该兼容5.2版本,而且又不想降低php版本。先后排查了web目录、数据库目录权限与nginx.conf配置文件,都没发现问题。最后把问题方向确定在php.ini与php-fpm.conf这两个配置文件里。最后发现是php.ini里的short_open_tag参数(此参数表示是否支持短标签的意思)要开启才行。

1.

vim /etc/php.ini

2. 开启short_open_tag参数,支持php短标签。修改为short_open_tag = On,如图所示:

3. wq保存,然后重启php-cgi进程:

/etc/init.d/php-fpm restart

Discuz 7.2程序运行正常了。

关于php.ini 中的short_open_tag和asp_tags的说明:

short_open_tag

决定是否允许使用 PHP 代码开始标志的缩写形式(<? ?> )。如果要和 XML 结合使用 PHP,可以禁用此选项以便于嵌入使用 <?xml ?> 。否则还可以通过 PHP 来输出,例如:<?php echo ‘<?xml version=”1.0″‘; ?> 。如果禁用了,必须使用 PHP 代码开始标志的完整形式(<?php ?> )。

注意: 本指令也会影响到缩写形式 <?= ,它和 <? echo 等价。使用此缩写需要 short_open_tag 的值为 On。
asp_tags

除了通常的 <?php ?> 标志之外还允许使用 ASP 风格的标志 <% %>。这也包括了输出变量值的缩写 <%= $value %>。
注意: ASP 风格标志的支持是 3.0.4 版新加的。


macd11.com 和 丁火甲木庚金 公众号版权所有丨如未注明 , 均为原创丨转载请注明原文链接。
喜欢 (0)
[sp91@qq.com]
分享 (0)

您必须 登录 才能发表评论!