PHP 7 включает ошибку файла - имя файла анализируется неправильно
Недавно я встретил странную ошибку и надеюсь, что кто-то может помочь. Мы используем 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
, ошибки не бывает.
Надеюсь, кто-то может помочь. Большое спасибо.