2

Recently I met a weird error and hope someone can help. We use LiteSpeed WebServer and Nginx on top, with PHP 7.5 and MySQL 5 (well, WordPress is the framework). It runs well for many days.

Suddenly it goes fatal at this line in different files

include ("class-xxx.php");

The error log says

[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

I double checked the code and see that the file name is declared "class-xxx.php", but somehow the server tries to include "dlass-xxx.php", thus it cannot find the file and trigger fatal error.

Solution? I re-upload the file, it works. But then it goes fatal in another file, at similar lines using include.

I notice that the first character in the file name, for example "c", is read incorrectly and shift 1 byte before (or after), so the file name is correct.

Such as

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

this is very strange. Do anybody know the reason? Is it related to any caching/memory management of LiteSpeed or Nginx or PHP 7. ?

It happens on PHP 7. only because if I switch to PHP 5.6, the error does not happen.

Hope someone can help. Thanks a lot.

Mahbubul Islam
  • 998
  • 1
  • 10
  • 24

0 Answers0