PHP 7 включает ошибку файла - имя файла анализируется неправильно - PullRequest
0 голосов
/ 03 октября 2018

Недавно я встретил странную ошибку и надеюсь, что кто-то может помочь.Мы используем LiteSpeed WebServer и Nginx сверху, с PHP 7.5 и MySQL 5 (ну, WordPress - это фреймворк).Он работает хорошо в течение многих дней.

Внезапно он становится роковым для этой строки в разных файлах

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", поэтому он не может найти файл и вызвать фатальную ошибку.

Решение?Я перезагружаю файл, все работает.Но затем он становится фатальным в другом файле, в аналогичных строках используется include.

Я замечаю, что первый символ в имени файла, например, "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, ошибка не произойдет.

Надеюсь, кто-то может помочь.Большое спасибо.

...