Laravel 10+ 要求 PHP ≥ 8.1.0 且 Composer ≥ 2.5.0,缺 mbstring、openssl、pdo 等扩展会导致 artisan serve 失败;Node.js 非必需但 Vite 构建前端需其支持。

PHP 版本必须 ≥ 8.1
Laravel 10+ 已彻底放弃对 PHP 7.x 的支持,php -v 输出低于 8.1.0 会直接报错:Composer could not find a composer.json file(实际是 Laravel 安装器因 PHP 版本不兼容静默失败)。别信某些教程说“8.0 勉强能跑”,Laravel 10.42 起已强制校验 version_compare(PHP_VERSION, '8.1.0', '>=')。
实操建议:
- 用
php -v确认当前 CLI 使用的 PHP 版本,不是 Web Server(如 Apache)里那个 - Mac 用户用 Homebrew 安装时,执行
brew install php@8.2后记得运行brew link --overwrite php@8.2 - Linux(Ubuntu/Debian)推荐用
ondrej/phpPPA 源,避免系统默认的过旧 PHP - Windows 用户别用 XAMPP 自带 PHP——它通常卡在 8.0.x,改用
phpbrew或直接下载php-8.2-nts-Win32-vs16-x64.zip解压配置 PATH
Composer 必须 ≥ 2.5.0
Laravel 11 要求 Composer 2.5+,否则运行 composer create-project laravel/laravel 会卡在依赖解析阶段,报错信息像:[ErrorException] Undefined array key "name"——这其实是 Composer 内部解析 laravel/framework 的新式 composer.json schema 失败。
实操建议:
- 运行
composer --version,若低于2.5.0,立刻升级:composer self-update --2 - 别用国内镜像源(如阿里云、腾讯云)的旧缓存包,加
-vvv参数运行安装命令,观察是否卡在Downloading https://packagist.org/packages.json - 如果公司内网禁外网,需手动下载
https://getcomposer.org/installer并用php composer-setup.php --filename=composer --version=2.5.8
扩展缺一个,artisan serve 就起不来
常见现象:项目 create-project 成功,但一跑 php artisan serve 就崩,报错 Class 'PDO' not found 或 Call to undefined function mb_strlen()。这不是 Laravel 问题,是 PHP 缺扩展。
必须启用的扩展(CLI 模式下):
-
mbstring(字符串处理,非可选) -
openssl(HTTPS 请求、JWT、Composer 下载) -
pdo+ 对应驱动(如pdo_sqlite或pdo_mysql,哪怕你暂时只用 SQLite) -
tokenizer(Tinker、Blade 编译必需) -
xml(事件广播、部分包依赖)
验证方式:运行 php -m | grep -E 'mbstring|pdo|openssl',没输出就说明没加载。Linux 下检查 /etc/php/*/cli/php.ini,Windows 下确认 php.ini 里有 extension=mbstring 这类行且前面没加分号。
Node.js 不是必须,但没它 vite 会报错
Laravel 默认用 Vite 构建前端资源,npm run dev 本质是启动 vite。没装 Node.js 或版本太低(node -v 18.0.0),运行时会直接报:Error: Cannot find module 'vite' 或更底层的 ERR_MODULE_NOT_FOUND。
实操建议:
- 最低要求
node -v≥18.0.0(Laravel 10.39+ 强制),别用 16.x——Vite 4.5+ 已弃用 - 用
nvm(macOS/Linux)或nvm-windows管理多版本,避免全局污染 - 如果纯后端开发、不用前端资源编译,可删掉
resources/js和vite.config.js,再注释app/Providers/AppServiceProvider.php中的Vite::useHotFile()调用,跳过 Vite 初始化
环境变量、Web 服务器(Nginx/Apache)、数据库这些,反而是次要项——Laravel 开发服务器 artisan serve 自带 PHP 内置服务器,只要 PHP 扩展齐、Composer 版本够、Node.js 在路径里,就能跑通基础请求路由。最容易被忽略的是 CLI PHP 和 Web PHP 不是同一个二进制,以及 Composer 镜像源导致的依赖元数据损坏。











