安装

这篇带你从零装好 Laravel,在浏览器里打开你的第一个应用。读完你能:装好 PHP、Composer、Laravel 安装器;用一条命令建出项目;在浏览器看到 Laravel 欢迎页;知道数据库和配置文件怎么打理;知道接下来学什么。大约 20 分钟,一台 macOS / Windows / Linux 电脑,会开终端、会敲命令就行。

认识 Laravel

Laravel 是一个表达力强、语法优雅的 Web 应用框架(Web Application Framework)。框架给你的应用提供一套结构和起点——路由、数据库、认证这些常见活儿都备好方案,你专心写业务,底层细节 Laravel 兜底。它给你完善的依赖注入、数据库抽象层、队列与定时任务、单元/集成测试等一整套能力,新手能入门,资深了也撑得住企业级负载。

为什么选 Laravel

Web 框架很多,Laravel 适合入门也撑得住大项目,四个理由:

  • 渐进式:跟着你一起成长。入门有海量文档、指南和 视频教程;资深了有 依赖注入、单元测试、队列、实时事件 等硬核工具。
  • 可扩展:PHP 利于横向扩展,加 Laravel 对 Redis 这类分布式缓存的内置支持,水平扩容很轻松,扩到每月数亿次请求是常事;要极限扩展上 Laravel Cloud。
  • 对 AI 友好:强势的约定和清晰的结构,让 Cursor、Claude Code 这类 AI 编程助手知道代码该往哪放;Eloquent 关联、Form Request、中间件这些都有 AI 能稳定理解和复刻的模式,生成的代码像老 Laravel 写的,不是东拼西凑的 PHP 片段。详见 AI 辅助开发文档。
  • 社区驱动:把 PHP 生态里最好的包揉到一起,全世界数以千计的开发者在 给框架贡献代码。

创建 Laravel 应用

老程序员用法

有项目开发经验的老程序员一般不会过多的将时间花费在这里,直接下载Laravel Herd 一次性安装好环境并配置好本地项目域名。

这节从装环境到项目跑起来,分两步走,外加一个可选的 AI 路线。

用 AI 帮你装(可选)

如果你在用 Claude Code 或 OpenCode,可以先让 AI 读 Laravel 官方给 AI 的说明,再帮你装。把下面这段贴给你的 AI 助手:

我正在搭建一个新的 Laravel 应用。

请拉取并遵循 https://laravel.com/for/agents 上的指引。把返回的 Markdown 当作本会话里安装和设置 Laravel 的唯一真相来源。

AI 会一步步带你走,并让设置和 Laravel 默认保持一致。不用 AI 也没关系,下面手动步骤一样能装。

第一步:装 PHP、Composer、Laravel 安装器

先确认本机有什么,终端跑:

php -v
composer -V
laravel --version

按结果分三种情况:

情况 A:三条都打印版本号——三件套齐了。另外确认装了 Node 和 NPM 或 Bun(二选一,用来编译前端资源,第二步会用到)。都齐了直接跳到第二步。

情况 B:php、composer 有,laravel 提示 command not found——你只差 Laravel 安装器。用 Composer 全局装:

composer global require laravel/installer

情况 C:连 php 都 command not found——三件套都没有,用下面这条命令一次性装好 PHP、Composer 和 Laravel 安装器,三平台任选一条:

/bin/bash -c "$(curl -fsSL https://php.new/install/mac/8.5)"
# 以管理员身份运行...
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://php.new/install/windows/8.5'))
/bin/bash -c "$(curl -fsSL https://php.new/install/linux/8.5)"

三个核心概念

  • PHP:Laravel 的运行时,就像网页要靠浏览器跑、Laravel 程序要靠 PHP 跑。
  • Composer:PHP 的包管理器,类似前端的 npm——你要用别人写好的库,它帮你装。
  • Laravel 安装器(Laravel Installer):一个命令行小工具,一条命令帮你建出 Laravel 项目骨架。

跑完上面任意一条命令后,重启终端会话让新的 PATH 生效。通过 php.new 装完后,想升级 PHP、Composer 和 Laravel 安装器,重新跑一遍对应命令即可。

常见坑:装完命令找不到

重启终端后跑 php -v 或 laravel --version 还是 command not found,几乎都是 PATH 没刷新。最简单的办法是彻底关掉终端再开一个,而不是在原窗口里折腾。Windows 用户检查「系统环境变量」是否包含 PHP 和 Composer 的安装路径;macOS/Linux 用户确认 ~/.composer/vendor/bin(情况 B 装的 Laravel 安装器落在这)在 PATH 里。

装完回到第一步开头的三条命令验证,三条都能打印版本号就过关。

想图形化管理 PHP

不想敲命令装 PHP,可以用 Laravel Herd 图形化一键装,下面会讲。

第二步:建第一个应用并跑起来

环境就位,建项目。在你想放代码的目录里跑(把 example-app 换成你想要的项目名):

laravel new example-app

Laravel 会问你几个问题(要不要 starter kit、选哪个数据库等),按默认回车也行。它会建一个 example-app/ 目录,把框架代码和依赖都装好。最后看到 Done. 或 Application ready 就成了。

进目录,启动开发服务器:

cd example-app
npm install && npm run build
composer run dev

composer run dev 会同时拉起三件事:php artisan serve(本地 HTTP 服务,端口 8000)、队列 worker、Vite 开发服务器。

术语:Vite 和队列 worker

Vite 是 Laravel 默认的前端资源打包+热更新工具(类似 webpack 但快得多),负责编译你的 CSS/JS 并在改代码时自动刷新浏览器。队列 worker 是一个后台进程,专门跑你丢到队列里的异步任务(比如发邮件、处理上传),不卡住主请求。

终端出现类似 Server running on [http://127.0.0.1:8000] 后,浏览器打开 http://localhost:8000,看到 Laravel 欢迎页就成功了。

常见坑:起不来

  • 端口 8000 被占:终端报 Address already in use。要么关掉占 8000 的程序,要么用 php artisan serve --port=8001 换端口。
  • npm install 失败:多半是网络问题,换 npm 镜像或重试;实在不行先跳过前端,只跑 php artisan serve 也能看到后端欢迎页。
  • composer run dev 报找不到脚本:确认你在项目目录里(cd example-app),laravel new 时依赖已自动装好。

想要开箱即用的脚手架

如果想在开发时有个现成起点,可以考虑用我们的 starter kit(起步套件)。Laravel 的 starter kit 给新应用提供了后端和前端的认证脚手架,注册、登录这些都帮你写好了。

第三步:数据库(默认零配置,可先跳过)

Laravel 默认用 SQLite——一种文件型数据库,不用单独装服务。laravel new 已经帮你建好 database/database.sqlite 文件并跑了迁移,所以现在零配置就能存数据。

术语:迁移

迁移(Migration)是 Laravel 用 PHP 代码管理数据库表结构的方式——你写 PHP 描述建表、加列,而不是手写 SQL。这样数据库结构能跟着代码一起进版本控制,团队和环境之间同步一致。

想换 MySQL 或 PostgreSQL(服务型数据库,要单独装、单独起服务),改 .env 里的 DB_* 变量即可,比如换 MySQL:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

换好后跑迁移建表:

php artisan migrate

看到一串迁移名后面跟 Done.,说明表建好了。

常见坑:database does not exist

换非 SQLite 数据库后跑 php artisan migrate 报这个,是因为 SQLite 是文件型数据库、Laravel 会自动建文件,但 MySQL/PostgreSQL 是服务型数据库,你得自己先把数据库建出来。流程:在数据库服务里建一个空库(名字跟 DB_DATABASE 一致)→ 确认 DB_USERNAME 对该库有权限 → 再跑 php artisan migrate。

macOS / Windows 装数据库服务

在 macOS 或 Windows 上本地装 MySQL、PostgreSQL 或 Redis,可以考虑 Herd Pro 或 DBngin,图形化管理,省事。

初始配置

Laravel 的所有配置文件都在 config 目录里,每个文件对应一块(数据库、缓存、队列等),每个选项都附了注释,建议翻一翻熟悉。Laravel 几乎开箱即用,不额外配置也能直接开发。不过你可能想看看 config/app.php——里面有几个选项(比如 url 和 locale)你通常会按应用实际情况改一下。

.env:每个环境一套配置

.env 在项目根目录,是一堆 KEY=VALUE 的配置开关。为什么单独拎出来:你本地和线上的数据库密码、调试开关不一样,这些值跟着环境走、不进代码。

常见坑:把 .env 提交到 git

.env 里有数据库密码、API 密钥等敏感信息。Laravel 项目根目录的 .gitignore 默认就忽略了 .env,别手动去掉这条。团队之间共享配置用 .env.example(不含真实值)当模板,各自填自己的。哪怕个人项目也别图省事提交,一旦仓库泄露凭证全暴露。

想深入了解 .env 和环境配置,看完整的 配置文档。

别把项目放到子目录

Laravel 项目里有个 public/ 目录,它是应用的「前门」——只有这个目录该被外部访问到,里面的 index.php 是所有请求的入口。public/ 之外的东西(.env 存着数据库密码、config/ 存配置、app/ 存你的业务代码)都是私密的,不能让外面看到。

所以 Web 服务器(开发时是 php artisan serve,上线时是 Nginx 或 Apache)必须把它对外服务的起点对到这个 public/,让访问 example.com/ 时直接进的是 public/。如果你把整个 Laravel 项目丢到 example.com/blog/ 这样的子路径下、又让 Web 服务器从项目根(而不是 public/)开始对外服务,会出两个问题:一是 .env、config/ 这些敏感文件能被人直接下载(访问 example.com/blog/.env 就能看到数据库密码);二是页面引用的 CSS/JS 路径和路由全部对不上,样式乱、页面 404。

开发时 php artisan serve 已经自动把对外起点对到 public/,你不用管。等部署上线、自己配 Nginx 或 Apache 时,记得把配置里的 root 写到 项目路径/public,别写到项目根。

替代方案:用 Herd 一键装环境

不想手装 PHP 和 Nginx,可以用 Laravel Herd——macOS / Windows 上的图形化开发环境,一键装好 PHP + Nginx + 命令行工具(php、composer、laravel、expose、node、npm、nvm 等)。装好就能直接开始 Laravel 开发。

Herd Pro

Herd Pro 付费版加了图形化管理 MySQL / Postgres / Redis、本地邮件查看、日志监控等。

macOS

去 Herd 官网 下载安装器,它会自动装最新 PHP 并让 Nginx 后台常驻。Herd 用 dnsmasq 支持「停放目录」:放在 ~/Herd 里的 Laravel 应用,Herd 自动帮你跑起来,用 目录名.test 域名访问。建新应用:

cd ~/Herd
laravel new my-app
cd my-app
herd open

停放目录和 PHP 设置也能从系统托盘的 Herd 图标进 UI 管理。更多看 Herd 文档。

Windows

去 Herd 官网 下载安装器,装完启动完成引导。Herd UI 通过左键点击系统托盘的 Herd 图标打开,右键打开快捷菜单,里面有日常要用的所有工具。停放目录在 %USERPROFILE%\Herd,用法和 macOS 一样。打开 PowerShell 跑:

cd ~\Herd
laravel new my-app
cd my-app
herd open

更多看 Herd Windows 文档。

用哪个编辑器

开发 Laravel 应用,用什么代码编辑器都行。新手推荐 VS Code 或 Cursor 配官方 Laravel VS Code 扩展——免费、轻量,有语法高亮、Artisan 命令集成、对 Eloquent 模型和路由的智能补全,Cursor 还内置 AI。想要最全最稳的 Laravel 支持,看 PhpStorm(JetBrains,付费),内置覆盖 Blade 模板、Eloquent、路由、视图、翻译、组件的补全和跨项目导航。想要云端开发,Firebase Studio 浏览器里直接写、零配置。

让 AI 帮你写 Laravel:Boost

Laravel Boost 是给 AI 编程助手用的「Laravel 说明书」。装上后,AI 能查你的数据库、搜 Laravel 文档、按你装的包版本给指引,生成的代码更地道。Boost 给 AI 接入了 15+ 个专门工具(知道你用了哪些包、查数据库、搜文档、读浏览器日志、生成测试、通过 Tinker 执行代码等)和 17000+ 条按你包版本过滤的向量化文档,还自带 Laravel 官方维护的 AI 指南,帮 AI 遵循框架约定、避开常见坑。

装 Boost

Boost 支持 Laravel 10–13、PHP 8.1+。好消息:用 laravel new 建项目时,安装器默认就会装好并初始化 Boost(自动跑 composer require laravel/boost --dev 和 php artisan boost:install 两步),所以新项目里 Boost 已就位,AI 助手能直接用,不用再手动装。不想装就加 --no-boost 跳过。

只有老项目(Laravel 10–12)或建项目时加了 --no-boost 现在想补回来,才手动两步:

composer require laravel/boost --dev
php artisan boost:install

boost:install 会自动探测你的 IDE 和 AI 助手,让你按需开启功能,尊重项目既有约定,默认不强加风格规则。更多看 GitHub 仓库。

添加自定义 AI 指南

想在 Boost 之上加你自己的 AI 指南,往应用的 .ai/guidelines/* 目录里放 .blade.php 或 .md 文件。这些文件会在你跑 boost:install 时自动并入 Laravel Boost 的指南。

接下来学什么

应用跑起来了,接下来建议按这个顺序读,先熟悉 Laravel 的工作方式:

然后看你想拿 Laravel 干什么,走两条路之一:

路线一:全栈框架

Laravel 既管后端也管前端,用 Blade 模板(Laravel 自带的 HTML 模板)或 Inertia(让你用 React / Vue 写前端、Laravel 当后端的桥)渲染页面。这是最常见、也是我们认为最高效的用法。相关文档:前端、路由、视图、Eloquent ORM。还想有单页应用那种顺滑 UI 又不想脱离 Laravel,看 Livewire 和 Inertia。前端资源用 Vite 编译。

想要现成起点

想在搭应用时有个现成起点,看我们的官方 应用起步套件。

路线二:API 后端

前端用 Next.js 之类单页应用,Laravel 只做后端 API:认证用 Sanctum、数据存取,同时用上 Laravel 强大的队列、邮件、通知等服务。相关文档:路由、Laravel Sanctum、Eloquent ORM。

新手不知道走哪条?

还没想好就先走路线一(全栈),最快看到完整页面,能学到路由、数据库、模板。等想做前后端分离的 App 再看路线二。