教程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 文档的环境变量章节

Laravel Octane 支持

Zeabur 内置 Laravel Octane 搭配 Swoole 服务器的支持,不过您需要在 zbpack.json 上设置要使用的服务器:

{
  "laravel": {
    "octane": {
      "server": "swoole"
    }
  }
}

您也可以使用 ZBPACK_LARAVEL_OCTANE_SERVER=swoole 环境变量,在服务范围设置 Laravel Octane。