最稳妥的Laravel项目创建方式是composer create-project,它自动下载指定版本、安装依赖、生成目录并运行npm install;而laravel new因版本滞后、权限问题和调试困难不推荐。

直接用 composer create-project 创建 Laravel 项目
最常用、最稳妥的方式是使用 Composer 的 create-project 命令,它会自动下载指定版本的 Laravel 框架、安装依赖、生成基础目录结构,并运行 npm install(如果项目含前端脚手架)。
执行命令前确保已安装 PHP(≥8.1)、Composer 和 Node.js(可选,仅需编译前端资源时):
-
composer create-project laravel/laravel my-project—— 创建最新稳定版 -
composer create-project laravel/laravel my-project "10.*"—— 指定 Laravel 10.x 版本 -
composer create-project laravel/laravel my-project --prefer-dist --no-interaction—— 跳过交互提示,适合 CI/CD 或批量部署
注意:--prefer-dist 强制从压缩包安装(更快),--no-interaction 避免卡在环境配置提问(如是否创建 Git 仓库)。
为什么不用 laravel new?
laravel new 是 Laravel 官方提供的快捷命令,但它依赖全局安装的 laravel/installer 工具。这个工具本质就是封装了 create-project,但存在几个实际问题:
- 版本滞后:官方 installer 更新不及时,可能拉不到最新的 Laravel 小版本(比如 10.42.0 已发布,installer 还停留在 10.40.0)
- 权限与路径问题:全局安装的
laravel命令在某些系统(尤其是 macOS M1/M2 + Homebrew 或 Windows WSL)上容易因 PATH 或 symlink 失效而报错command not found - 调试困难:出错时看不到底层 Composer 日志,排查依赖冲突或网络超时更麻烦
除非你明确需要 laravel new my-project --git 这类快捷开关,否则直接用 composer create-project 更透明、可控。
常见错误和对应解决方法
执行 create-project 时遇到失败,多数不是 Laravel 本身的问题,而是环境或网络导致:
-
[RuntimeException] Failed to execute git clone ...:Composer 默认尝试用 Git 克隆,若本地没配 Git 或网络无法访问 GitHub,加--prefer-dist强制走 ZIP 包 -
file_put_contents(.../composer.json): failed to open stream:目标目录已存在且非空,删掉再试;或当前用户无写入权限(尤其在 Docker 或 root 用户下操作) -
PHP Fatal error: Uncaught ErrorException: require(.../vendor/autoload.php): Failed opening required:说明依赖没装成功,检查composer install是否被跳过,或运行cd my-project && composer install手动补装 - Laravel 11+ 报
Class "Illuminate\Foundation\Application" not found:确认 PHP 版本 ≥8.2(Laravel 11 强制要求),旧版 PHP 会静默失败
创建后必须做的三件事
项目目录生成完只是起点,不执行这几步,项目大概率跑不起来:
- 生成应用密钥:
php artisan key:generate(否则 session、加密等功能异常) - 配置数据库:修改
.env中的DB_DATABASE、DB_USERNAME、DB_PASSWORD,并确保 MySQL/PostgreSQL 服务已启动 - 启动开发服务器:
php artisan serve(默认监听http://127.0.0.1:8000),不要直接用 PHP 内置服务器跑public/index.php,会丢失重写规则
特别提醒:.env 文件在 create-project 后自动生成,但里面的数据库密码是空的,很多人卡在这一步连首页都打不开——不是代码问题,是环境没填对。










