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

Laravel部署至共享主机后出现IsAdmin中间件不存在错误求助

问题描述

我近期从原生PHP转用Laravel,本地完成的项目所有功能正常,但部署到共享主机后遇到中间件报错:

Target class [App\Http\Middleware\IsAdmin] does not exist.

相关配置信息

  • 中间件注册(app/Http/Kernel.php):
'isAdmin' => \App\Http\Middleware\IsAdmin::class, 
  • IsAdmin中间件代码(app/Http/Middleware/IsAdmin.php):
<?php

namespace App\Http\Middleware;

use App\Models\User;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class isAdmin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse)  $next
     * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
     */
    public function handle(Request $request, Closure $next)
    {

        if (Auth::user() &&  Auth::user()->isAdmin == 1) {
            return $next($request);
        }

        return redirect('/');
    }
}
  • 路由组配置:
Route::group(['middleware' => 'isAdmin'], function () {
        // 使用该中间件的路由
});

额外情况:服务器PHP版本低于8.0.2,无法运行artisan命令。

解决方案

1. 修正文件名大小写

多数共享主机使用Linux系统,文件名区分大小写,而本地Windows/macOS通常不区分。你代码里的类名是isAdmin(小写首字母),但注册时写的是IsAdmin,必须让文件名和类名严格匹配:

  • 把服务器上的中间件文件名从isAdmin.php改为IsAdmin.php(首字母大写)。

2. 手动补全类映射

因为服务器PHP版本不够无法运行Composer或artisan命令,手动处理自动加载:

  • 打开服务器上的vendor/composer/autoload_classmap.php文件,检查是否有App\Http\Middleware\IsAdmin的条目。如果没有,手动添加一行:
    'App\\Http\\Middleware\\IsAdmin' => $baseDir . '/app/Http/Middleware/IsAdmin.php',
    
  • 删除bootstrap/cache目录下的所有缓存文件(比如packages.php、services.php、routes.php),避免缓存导致的加载问题。

3. 检查文件上传完整性

确认服务器app/Http/Middleware/目录下确实存在IsAdmin.php文件,且内容和本地完全一致,没有上传丢失或损坏的情况。

4. 处理PHP版本兼容问题

Laravel 9及以上版本要求PHP 8.0.2+,服务器版本不达标会引发更多问题:

  • 联系主机商升级PHP版本到符合要求的版本;
  • 若无法升级,可将本地项目降级到Laravel 8(支持PHP 7.3+),重新部署。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 06:49:06