由于 PHP 5.4 存在一些依赖地狱和一些问题,我们从 PHP 5.4 降级到 5.3。
自从这样做以来,我们的一些网络应用程序表现得很奇怪。
例如:
# php index.php
结果是:
Parse error: syntax error, unexpected $end in... on line 14
通常这表明有人忘记关闭一些大括号或关闭<?php
或{
其他东西 - 但我已经检查过并且似乎没有任何语法问题。在降级之前它也运行良好。
有任何想法吗?
降级后:
[root@server ~]# php -v PHP 5.3.3 (cli) (built: Dec 10 2013 22:12:52) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies [root@server ~]# rpm -qa | grep php php53-common-5.3.3-22.el5_10 php53-mysql-5.3.3-22.el5_10 php53-xml-5.3.3-22.el5_10 php53-ldap-5.3.3-22.el5_10 php-pear-1.9.4-27.el5.remi php53-5.3.3-22.el5_10 php53-imap-5.3.3-22.el5_10 php53-pdo-5.3.3-22.el5_10 php53-gd-5.3.3-22.el5_10 php53-process-5.3.3-22.el5_10 php53-cli-5.3.3-22.el5_10 php53-devel-5.3.3-22.el5_10 php53-mbstring-5.3.3-22.el5_10
[更新/编辑:更奇怪的是,如果我从命令行调用它们,许多 PHP 文件都可以正常工作,但是当我通过浏览器/apache 调用它们时,它们什么也不返回。]
答案1
事实证明,这是散落在各种 Web 应用程序中的 PHP 短标签的问题。重新short_open_tag
打开php.ini
(被降级覆盖)就成功了。