You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux Docker部署PHP项目找不到app\core\Request类如何解决

问题根因

该错误核心触发原因是Windows与Linux文件系统的大小写敏感规则差异:Windows本地NTFS文件系统默认不区分文件名大小写,存在命名不规范时不会触发加载错误;Debian使用的Linux原生文件系统严格校验文件名大小写,部署后不规范的命名会直接导致类找不到的致命错误。
具体存在的不规范项:

  • 文件名、目录名大小写与命名空间、类名不匹配,不符合PSR-4自动加载规范
  • 存在文件名拼写错误

对应到项目里的具体问题:

  1. 代码中命名空间定义为app\core,但项目根目录命名为App、核心类子目录命名为Core,首字母大小写不对应
  2. core目录下请求类文件名为request.php、响应类文件名为response.php,但代码中实例化的类名为Request、Response,文件名首字母未大写
  3. core目录下应用类文件名为拼写错误的Applicatoin.php,和代码中定义的类名Application不匹配
修复方案

按以下步骤操作即可解决:

  1. 重命名目录和文件,保证大小写、拼写和命名空间、类名完全一致
    • 将根目录App重命名为app,子目录Core重命名为core
    • 将core目录下的request.php重命名为Request.php,response.php重命名为Response.php
    • 将拼写错误的Applicatoin.php重命名为正确的Application.php
    • 检查其余目录、文件:src下的controller目录、HomeController.php等文件,同样要保证命名空间、类名、文件名大小写完全对齐
  2. 重新生成自动加载映射
    如果使用Composer管理依赖和自动加载,先确认composer.json中PSR-4配置正确,参考配置如下:
    "autoload": {
        "psr-4": {
            "app\\": "./"
        }
    }
    
    配置确认无误后,在项目根目录执行命令重新生成自动加载文件:
    composer dump-autoload -o
    
  3. 修正容器内项目文件权限
    避免因web进程无文件读取权限导致类加载失败,在容器内执行以下命令修正权限:
    chown -R www-data:www-data /var/www/test/
    find /var/www/test/ -type d -exec chmod 755 {} \;
    find /var/www/test/ -type f -exec chmod 644 {} \;
    

完成以上操作后重启Apache容器服务即可正常运行。

内容的提问来源于stack exchange,提问作者Bjop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 15:21:25