Composer怎么创建Laravel项目 命令行搭建Laravel环境教程【指南】

8次阅读

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

Composer怎么创建Laravel项目 命令行搭建Laravel环境教程【指南】

直接用 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 "IlluminateFoundationApplication" not found:确认 PHP 版本 ≥8.2(Laravel 11 强制要求),旧版 PHP 会静默失败

创建后必须做的三件事

项目目录生成完只是起点,不执行这几步,项目大概率跑不起来:

  • 生成应用密钥:php artisan key:generate(否则 session、加密等功能异常)
  • 配置数据库:修改 .env 中的 DB_DATABASEDB_USERNAMEDB_PASSword,并确保 mysql/postgresql 服务已启动
  • 启动开发服务器:php artisan serve(默认监听 http://127.0.0.1:8000),不要直接用 PHP 内置服务器跑 public/index.php,会丢失重写规则

特别提醒:.env 文件在 create-project 后自动生成,但里面的数据库密码是空的,很多人卡在这一步连首页都打不开——不是代码问题,是环境没填对。

text=ZqhQzanResources