教程PHPLaravel

部署 Laravel 项目

这篇文章将会教你如何在 Zeabur 上部署你的 Laravel 项目。

第一步:环境配置

你可以先在本地测试构建,确保你的项目可以正常运行。

你必须提供所使用的 PHP 版本给 Zeabur 作为运行环境,将版本资讯写在composer.json 中,如以下所示:

{
  "require": {
        "php": "8.1"
  }
}

第二步: 建立项目(可选)

首先,你需要在本地开发环境初始化一个 Laravel 项目,我们可以按照 Laravel 官方文件 的指示来完成这个步骤,

创建完成后,为其初始化一个 Git 仓库并部署到你的 GitHub 上。

第三步:部署 Laravel 项目

在你的项目中,点击 Deploy service 或者 Add new service 按钮,选择 Deploy your source code.

deploy

搜索想要部署的 Laravel 代码仓库,点击导入,你的 Laravel 应用就将自动开始部署。

第四步:为你的Laravel項目添加APP_KEY环境变量

每次 Laravel 开发人员新建或克隆 Laravel 应用时,生成 application key 或 APP_KEY 是最重要的初始步骤之一。

切换到項目环境变数设置页面,并输入你的APP_KEY环境变量。

你可以通过以下指令为你的Laravel产生一个 APP_KEY

php artisan key:generate

APP_KEY

连接 MySQL 数据库

通常情况下,您的 Laravel 项目会需要连接 MySQL 数据库。您可以通过以下步骤连接到 MySQL 数据库。

  1. 首先,您需要在您的 Laravel 项目中安装 ext-pdo_mysql 扩展,以便 Zeabur 可以为您启用 MySQL 的 PHP 支持。在您的本地环境中,请使用以下命令安装这个扩展:

    composer require ext-pdo_mysql

    然后,提交新的 composer.json 和 lockfile,然后推送到您的 GitHub 上。

  2. 创建 MySQL 服务,然后在您的本地环境中运行以下命令,将 table 等设置 migrate 到 Zeabur 上。

    export DATABASE_URL=mysql://<username>:<password>@<host>:<port>/<database>
    php artisan migrate

    上述 <username><password><host><port><database> 都是您的 MySQL 服务信息,您可以在 MySQL 服务页面的“Instruction”部分找到。

  3. 在您 Zeabur 上的 Laravel 服务页面上,创建一个 DATABASE_URL 环境变量,内容如下:

    mysql://${MYSQL_USER}:${MYSQL_PASSWORD}@${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DATABASE}

    ${MYSQL_USER} 等变量的含义可以参考 MySQL 文档的环境变量章节

自动优化

Zeabur 在构建 Laravel 服务时,会运行这些优化指令 1

php artisan optimize
php artisan config:cache
php artisan event:cache
php artisan route:cache
php artisan view:cache

您可以使用 PHP_OPTIMIZE=false 变量来关闭这些自动优化命令,然后再使用自定义编译命令微调您的优化流程。

Vite / Laravel Mix 支持

Zeabur 会在 package.json 中存在 build 指令时,自动运行 npm installnpm run build。考虑到 Vite 和 Laravel Mix 默认都会在 package.json 中设置 build 指令,Zeabur 会在构建 Laravel 服务时自动编译这些 assets。

Footnotes

  1. https://laravel.com/docs/11.x/deployment#optimization