【问题标题】:Sudden PHP parse error on RHELRHEL 上突然出现 PHP 解析错误
【发布时间】:2015-06-04 13:43:39
【问题描述】:

我有各种 PHP 文件,在应用程序运行之前没有一个文件被修改过并且它崩溃了。我的问题是,由于某种原因,这些文件突然在整个文件中看似随机的地方抛出诸如“意外”方括号之类的 PHP 解析错误,但是在手动检查文件时,语法是正确的。

我所做的唯一可以“更改”文件的事情就是各种 chmod 操作来更改权限。但是这将如何/为什么会改变文件的实际内容?

文件像往常一样在启动时被调用,并且过去一直运行良好,直到最近的 chmod 更改。

这是永久性的,还是我只需要从较早的时间恢复我的系统?

RHEL 6.5、PHP 5.4。

编辑:

错误示例:

PHP Parse error:  syntax error, unexpected '[' in /var/ptc/CRM-dev/tools/init on line 122

第 122 行是什么:

$files = [];

另一个例子:

PHP Parse error:  syntax error, unexpected '[', expecting ')' in /var/ptc/CRM-dev/vendor/react/promise/src/functions.php on line 68

第 68 行是什么:

 return resolve([]);

但这些文件本身并没有改变(据我所知),语法看起来是正确的。

phpinfo() 给出 5.4.39,和在服务器上运行 php -v 时一样。

【问题讨论】:

  • 不看代码怎么判断?
  • 可能有很多原因。给我们一个导致错误的行的例子。这是一种可能性:'mysqli_fetch_assoc($r)['r']'
  • “看似随机的地方”——你的意思是对你来说似乎是随机的?也许不适合我们。显示一个 MCVE。

标签: php linux rhel


【解决方案1】:

如果 PHP 版本已更改,则可能会遇到 PHP 5.4 方括号数组语法。

使用phpinfo(); 确保运行 Web 服务器的 PHP 版本与您在 CLI 上使用的版本相同。

【讨论】:

    猜你喜欢
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多