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

子域名MVC项目报Class 'App\Models\User'未找到错误求助

子域名生产环境类加载失败排查与解决

问题场景

主域名domain.com和子域名sub.domain.com分别配置独立MVC目录,主域名运行正常,但子域名在生产环境抛出类找不到的致命错误,本地XAMPP环境运行正常。

错误日志

Fatal error: Uncaught Error: Class "App\Models\User" not found in /home/u527983822/domains/domain.com/public_html/momo/app/controllers/home.php:16 Stack trace: #0 [internal function]: App\Controllers\Home->index() #1 /home/u527983822/domains/domain.com/public_html/momo/app/core/route/app.php(28): call_user_func_array() #2 /home/u527983822/domains/domain.com/public_html/momo/index.php(9): App\Core\Route\App->__construct() #3 {main} thrown in /home/u527983822/domains/domain.com/public_html/sub/app/controllers/home.php on line 16

相关代码

控制器home.php

<?php

namespace App\Controllers;
use App\Core\Controller\Controller;
use App\Models\User;
use App\Core\Csrf\CSRFHelper;
use App\Models\Lead;
use App\Models\Agent;
use DateTime;

class Home extends Controller
{
    public function index()
    {

        $authenticator = new User();
        $agents_activity = new Agent();

User模型代码

<?php
namespace App\Models;

use App\Core\Database\Database;
use App\Libs\PHPMailer\EmailSender;

class User
{

项目目录结构

主域名domain.com目录结构:
│   ├── app
│   ├── assets
│   ├── --------------sub/
│   │                 └── -----app     子域名sub.domain.com目录
│   ├──vendor         ├── ------assets
│   ├── .htaccess      ├── ------vendor
│   ├── composer.json ├── ------.htaccess
│   ├── composer.lock ├── ------composer.json
│   ├── index.php     ├── ------composer.lock
                      ├── ------ index.php

解决方案

1. 修复Composer自动加载配置

  • 检查子域名目录下的composer.json,确认PSR-4命名空间映射正确:
    {
      "autoload": {
        "psr-4": {
          "App\\": "app/"
        }
      }
    }
    
  • 进入子域名根目录,执行命令更新自动加载文件:
    composer dump-autoload
    

2. 修正文件大小写与权限

  • 生产环境(Linux系统)区分文件名大小写,确保User模型文件名为User.php(首字母大写),而非user.php。
  • 调整子域名目录权限,确保服务器进程可读取文件:
    chmod -R 644 /home/u527983822/domains/domain.com/public_html/sub/app/Models/
    chmod -R 755 /home/u527983822/domains/domain.com/public_html/sub/app/
    

3. 验证入口文件的自动加载路径

  • 打开子域名的index.php,确认引入的是自身目录下的autoload.php:
    // 正确路径
    require __DIR__ . '/vendor/autoload.php';
    
  • 禁止主域名与子域名共用vendor目录,确保子域名有独立的依赖包。

4. 核对命名空间与目录结构

  • 确认子域名的app/Models目录层级与命名空间App\Models严格对应,User.php必须放在app/Models/目录下。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 20:32:37