首页 > 解决方案 > PHP 7 包含文件错误 - 文件名解析不正确

问题描述

最近我遇到了一个奇怪的错误,希望有人能提供帮助。我们在上面使用LiteSpeed WebServerand和(嗯,WordPress 是框架)。它运行良好很多天。NginxPHP 7.5MySQL 5

突然它在不同文件中的这一行变得致命

include ("class-xxx.php");

错误日志说

[02-Oct-2018 13:04:36 UTC] PHP Fatal error:  require(): Failed opening required 'dlass-xxx.php' (include_path='.:/opt/cpanel/ea-php72/root/usr/share/pear') in /xxx.php on line N

我仔细检查了代码并看到文件名已声明"class-xxx.php",但服务器以某种方式尝试包含"dlass-xxx.php",因此它找不到文件并触发致命错误。

解决方案?我重新上传文件,它可以工作。但随后它在另一个文件中变得致命,在类似的行中使用包含。

我注意到文件名中的第一个字符,例如“c”,被错误地读取并在之前(或之后)移动 1 个字节,所以文件名是正确的。

include "class-xxx.php" is parsed/read as "dclass-xxx.php"
include "page-xxx.php" is parsed"read as "opage-xxx.php"
...

这很奇怪。有人知道原因吗?LiteSpeed它是否与或Nginx或的任何缓存/内存管理有关PHP 7. ?

它发生在PHP 7. 只是因为如果我切换到PHP 5.6,则不会发生错误。

希望有人可以提供帮助。非常感谢。

标签: phpnginxincludephp-7litespeed

解决方案


推荐阅读