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