商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 如何使用Composer创建一个新的Laravel项目

如何使用Composer创建一个新的Laravel项目

  发布于2026-07-17 阅读(0)

扫一扫,手机访问

需先安装 Composer 和 PHP 8.2+(Lara vel 11),再用 composer create-project lara vel/lara vel my-project "11.*" 创建项目,随后复制 .env.example 为 .env 并执行 php artisan key:generate。

如何使用Composer创建一个新的Lara vel项目

确认本地已安装 Composer 和 PHP 7.4+

Composer 不是 Lara vel 自带的,它是一个独立的 PHP 依赖管理工具。如果运行 composer --version 报错或提示 command not found,说明还没装 Composer。Mac 用户推荐用 brew install composer;Windows 用户请下载官方 installer(Composer-Setup.exe)并确保勾选「Add to PATH」;Linux 用户注意别用系统包管理器装老旧版本(如 Ubuntu 的 apt install composer 常是 2.0 以下),应直接用官方脚本安装。

PHP 版本也得盯紧:Lara vel 11 要求 PHP 8.2+,Lara vel 10 是 PHP 8.1+。运行 php -v 确认,否则后续 create-project 会卡在依赖解析阶段,报一堆 requires php ^8.2 类错误,而不是明确告诉你 PHP 太旧。

用 create-project 创建项目(别用 lara vel/installer)

Lara vel 官方现在推荐直接用 Composer 的 create-project 命令,而不是先装 lara vel/installer 再用 lara vel new。后者多一层封装,出问题时堆栈难追踪,且默认拉的是最新稳定版,不便于指定版本。

执行这行命令即可初始化一个新项目:

composer create-project lara vel/lara vel my-project "11.*"

其中:

  • "11.*" 是版本约束,加引号防 shell 解析错误;想用 Lara vel 10?改成 "10.*"
  • my-project 是目录名,不能已存在;若省略,Composer 会尝试创建同名目录但可能失败
  • 不加版本约束(如只写 lara vel/lara vel my-project)会拉 latest,但 latest 可能是预发布版(比如 11.x-dev),CI 或生产环境要避开

安装后立刻检查 vendor/autoload.php 是否可加载

项目生成完不代表能跑起来。常见静默失败点是 vendor/autoload.php 没生成或权限不对——尤其在 Windows WSL 或 Docker 挂载卷里,Composer 可能因文件系统限制跳过某些 symlink 步骤。

进项目根目录,手动验证:

php -r "require 'vendor/autoload.php'; echo 'OK';"

如果报 Fatal error: require(): Failed opening required 'vendor/autoload.php',说明 composer create-project 实际没成功(可能中途网络断了、磁盘满、或被杀进程)。此时不要改 composer.json 后重试 composer install,而应删掉整个目录,重新跑 create-project —— 因为 create-project 包含解压骨架 + 安装依赖两步,中断后状态不一致。

启动开发服务器前先配好 .env

php artisan serve 能跑起来,不代表应用逻辑正常。Lara vel 启动时会读 .env,若文件不存在或 APP_KEY 为空,路由、加密、session 全部失效,但错误页面可能只显示「500 Server Error」,日志里才见 Application key not set

所以创建完项目第一件事是:

  • 复制 .env.example.envcp .env.example .env
  • 生成密钥:php artisan key:generate(这步必须做,不能跳)
  • 检查 DB_CONNECTION 等配置是否符合你本地环境,比如用 SQLite 就设 DB_CONNECTION=sqlite 并确保 database/database.sqlite 存在且可写

密钥没生成就访问首页,浏览器可能空白或报错,但 storage/logs/lara vel.log 里一定有线索。别猜,先看日志。

本文转载于:https://www.php.cn/faq/2345820.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注