Nginx PHP语法错误取决于版本/环境

Nginx PHP语法错误取决于版本/环境,nginx,php,Nginx,Php,我有两台服务器。 首先,本地代码工作正常, 在第二个阶段中,我得到了语法错误-当然检查了脚本文件scp&diff。 支架是否正确封闭 用于检查的命令 php -l template.phtml 阶段误差 135行文件 <?php $i++; } ?> 舞台版 本地版本 其他本地服务器版本 在安装php fpm的阶段,我不会处理它 有什么想法吗? 我应该处理php.ini还是只是重新安装php?看起来你在混合使用php和HTML。试试这个 尽管最好的做法是将PHP代码与HT

我有两台服务器。 首先,本地代码工作正常, 在第二个阶段中,我得到了语法错误-当然检查了脚本文件scp&diff。 支架是否正确封闭

用于检查的命令

php -l template.phtml
阶段误差

135行文件

    <?php $i++; } ?>
舞台版

本地版本

其他本地服务器版本

在安装php fpm的阶段,我不会处理它

有什么想法吗?
我应该处理php.ini还是只是重新安装php?

看起来你在混合使用php和HTML。试试这个


尽管最好的做法是将PHP代码与HTML代码分开。像这样的东西可以帮上忙。

很有趣。是否有可能删除该行以及打开该行的所有代码{您的代码仍然有一些功能,如果有,是否存在不同的PHP错误?能否显示template.phtml的完整代码?您是否在任何代码中使用了短标记?想想看,这可能是PHP v 5.5中发生了一些变化,为什么这解释了它在一台服务器上工作,而不是在另一台服务器上工作?此外,分离PHP和HTML并不意味着不工作在视图/模板等中使用PHP。否则,如何从引擎/框架中获取数据以在HTML中显示?它们是不同的服务器这一事实并不重要,重要的是它们是不同版本的PHP。不过,你的回答没有涵盖你在评论中所说的内容,而且你的回答也没有回答问题。混合使用PHP和HTML很好,他们在示例代码中打开和关闭PHP标记,所以我怀疑这是他们的实际问题。特别是考虑到它在另一台服务器上工作。我的假设是,版本之间发生了一些变化,这会影响它处理PHP块的方式。您只显示了一行代码,并且其中的括号不匹配PHP块。stage上的错误消息是正确的,或者其他PHP块之间有更多的代码拆分。如果有更多的PHP块,那么问题可能是PHP解释器如何组合它们。
    <?php $i++; } ?>
No syntax errors detected in template.phtml
PHP 5.5.3-1ubuntu2.5 (cli) (built: Jun 25 2014 17:14:14)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
PHP 5.4.24 (cli) (built: Jan 19 2014 21:32:15)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
PHP 5.3.10-1ubuntu3.14 with Suhosin-Patch (cli) (built: Sep  4 2014 07:08:49)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies