laravel 10 下安装 laravel-admin 需满足 php ≥ 8.1 并启用 openssl、mbstring、pdo_mysql、xml、fileinfo 扩展,通过 composer create-project 创建项目,配置 .env 后执行 vendor:publish 和 admin:install 完成部署。

确认 PHP 和 Composer 环境是否达标
laravel-admin 在 Laravel 10 下运行,要求 PHP ≥ 8.1(Laravel 10 官方最低要求),且必须启用 openssl、mbstring、pdo_mysql、xml、fileinfo 这几个扩展。Windows 用户常在这里卡住:明明装了 PHP,但 php -v 报“不是内部命令”——说明 PHP 路径没加进系统 Path 环境变量。
验证方式很简单:
- 打开 CMD 或 PowerShell,执行
php -v,输出版本号且 ≥ 8.1 - 执行
php -m | findstr "openssl mbstring pdo_mysql"(Windows)或php -m | grep -E "openssl|mbstring|pdo_mysql"(macOS/Linux),确保关键模块在列表中 - 执行
composer --version,看到版本号(≥ 2.5)即表示 Composer 可用
如果 fileinfo 缺失,打开 php.ini,取消注释 extension=fileinfo 行;改完记得重启终端或服务。
拉起 Laravel 10 项目并完成基础配置
别用 laravel new ——它依赖全局安装的 Laravel Installer,容易版本错乱。直接用 Composer 创建更可控:
在空目录下执行:composer create-project laravel/laravel . --prefer-dist
注意末尾的点(.),它让 Composer 把项目建在当前文件夹,避免多一层嵌套。完成后立刻做三件事:
- 复制
.env.example为.env:copy .env.example .env(Windows)或cp .env.example .env(macOS/Linux) - 运行
php artisan key:generate,生成 APP_KEY(否则后续admin:install会报加密异常) - 编辑
.env,填好DB_CONNECTION、DB_HOST、DB_PORT、DB_DATABASE、DB_USERNAME、DB_PASSWORD,确保数据库可连
此时可先跑一次 php artisan serve,访问 http://127.0.0.1:8000 确认 Laravel 欢迎页能出来——这是后续所有操作的前提。
安装 laravel-admin 并发布配置
laravel-admin 的核心安装不是“一键”,而是分两步:先引入包,再把它的配置和资源真正落地到你的项目里。跳过第二步会导致 admin:install 找不到 config/admin.php,直接报错。
执行顺序必须是:
-
composer require encore/laravel-admin:"^1.10"(明确指定 1.10+,兼容 Laravel 10;不写版本可能拉到旧版,引发视图或路由冲突) -
php artisan vendor:publish --provider="EncoreAdminAdminServiceProvider"(这一步会在config/下生成admin.php,同时复制前端资源到public/vendor/admin)
生成的 config/admin.php 是后续定制的起点。比如要改后台路径,就调 'prefix' => 'manage';要切中文,设 'locale' => 'zh-CN'。这些改动必须在运行 admin:install 前完成,否则默认表结构和初始用户会按英文路径建,改起来反而麻烦。
执行 admin:install 并处理常见失败
php artisan admin:install 是最关键的一步,它干两件事:建 5 张权限表(admin_users、admin_roles、admin_permissions、admin_menu、admin_operation_log),并插入用户名密码都是 admin 的超级管理员。
但这个命令失败率很高,典型错误和解法:
-
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long...:Laravel 10 默认用 utf8mb4_0900_as_cs 排序规则,某些 MySQL 版本不兼容。在app/Providers/AppServiceProvider.php的boot()方法里加一行:Schema::defaultStringLength(191);,再重试 -
Class 'EncoreAdminAdminServiceProvider' not found:说明上一步vendor:publish没成功,检查是否拼错 provider 名(注意双反斜杠:Encore\Admin\AdminServiceProvider),或 composer autoload 损坏,可试composer dump-autoload - 登录页空白或 404:
php artisan serve启动后访问的是/admin(不是/admin/),结尾斜杠不能多;另外确认public/.htaccess(Apache)或 Nginx 重写规则已启用,否则静态资源加载失败
成功后,浏览器打开 http://127.0.0.1:8000/admin,用 admin/admin 登录。第一次登录会强制改密,改完就进主界面了——但注意,这只是骨架,真实业务功能(比如商品管理)得自己写 Grid 和 Form,权限控制也得手动配,这些不在安装流程里。











