nginx+php5.3.x运行Discuz7.2程序乱码short_open_tag解决

2021-06-16
0评论
/
547阅读
爱搜啊

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

Discuz

Firefox 3.6下:

运行环境是LNMP,相同环境下的WordPress程序www.ha97.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、修改php.ini文件

vim /etc/php.ini

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

php5.3.x

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

/etc/init.d/php-fpm restart

Discuz 7.2程序运行正常了。

Discuz

关于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 版新加的。


本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件


于2021-06-16发布