PHP在ubantu和centos中require php文件失败的问题

最近遇到个特别诡异的问题,请大神们帮忙看下什么问题,`
spl_autoload_register()自动载入类,一切完美,项目再win和mac中能正常运行,但是当把项目搬到ubantu和centos中,一部分的类能自动require进来,一部分失败了。
考虑过是路径分隔的问题、PHP安全模式问题、权限问题,但是都没解决。

spl_autoload_register(function($class){
            $class  = str_replace('\\', DIRECTORY_SEPARATOR, $class);//处理命名空间的斜杠“\”
            if (strstr($class, '/')) {
                //使用命名空间类统一require
                $classFile  = APP_PATH.$class.".php";
                echo $classFile.PHP_EOL;
            }else {
                $classFile  = $class.'.php';
            }
            if (file_exists($classFile)) {
                require_once $classFile;
            }else{
                echo $classFile.PHP_EOL;
                throw new \Exception("内部错误",120000);
            }
        });

我的项目中当

$TradePay   =\Zsmart\Business\Unipay\Offical\Alipay\TradePay()

时正常情况下应该自动require这个文件APP_PATH./Zsmart/Business/Unipay/Offical/Alipay/TradePay.php,这个我文件反复检查过,存在,且文件有777权限,但是用is_file()和file_exist()检查居然是fasle,太诡异了,请问下大家这是啥原因呢。
重点是,在win和mac中没问题,放centos和ubantu就出这个问题了。

阅读 1.8k
1 个回答
新手上路,请多包涵

APP_PATH
建议每次导入的时候,都把全路径打印到日志中。仔细对比失败时的路径。
一般这种情况,可能文件名称或者路径文件夹的大小写问题,这个比较常规出现。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题