主页/PHP笔记/PHP问答/框架Laravel/如何使用Laravel Forge将Laravel部署到DigitalOcean

如何使用Laravel Forge将Laravel部署到DigitalOcean

Bug编译狮

Bug编译狮

使用Laravel Forge将Laravel部署到DigitalOcean是一个相对简单的过程。以下是详细步骤:

1. 注册并登录Laravel Forge

  1. 访问Laravel Forge官网
  2. 注册一个新的账户(如果还没有)。
  3. 登录Forge。

2. 创建新项目

  1. 在Forge控制台中,点击左侧菜单栏中的“Projects”。
  2. 点击“New Project”按钮。
  3. 选择“Laravel”作为框架。
  4. 输入项目的名称、描述和选择一个区域。
  5. 勾选你需要的额外功能,如SSL证书、DNS记录等。
  6. 点击“Create Project”。

3. 配置服务器

  1. 在项目页面中,点击右侧菜单栏中的“Servers”。
  2. 选择你要配置的服务器。
  3. 点击“Settings”按钮。
  4. 在“SSH Keys”部分,添加一个新的SSH密钥对。
  5. 点击“Save Changes”。

4. 安装Laravel

  1. 在服务器上运行以下命令来安装Laravel:

    composer create-project --prefer-dist laravel/laravel your_project_name
    cd your_project_name
  2. 运行以下命令来生成应用密钥:

    php artisan key:generate

5. 配置数据库

  1. 在Forge控制台中,点击右侧菜单栏中的“Databases”。
  2. 选择你要使用的数据库。
  3. 点击“Settings”按钮。
  4. 在“Database Credentials”部分,输入数据库用户名、密码和主机名。
  5. 点击“Save Changes”。

6. 配置Nginx

  1. 在服务器上编辑Nginx配置文件:

    sudo nano /etc/nginx/sites-available/your_project_name
  2. 添加以下内容到配置文件中:

    server {
       listen 80;
       server_name your_domain_or_ip;
    
       root /var/www/html/your_project_name/public;
       index index.html index.htm;
    
       location / {
           try_files $uri $uri/ /index.php?$query_string;
       }
    
       location ~ .php$ {
           include snippets/fastcgi-php.conf;
           fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
       }
    }
  3. 创建符号链接以启用新的配置:

    sudo ln -s /etc/nginx/sites-available/your_project_name /etc/nginx/sites-enabled/
  4. 测试Nginx配置:

    sudo nginx -t
  5. 如果配置正确,重新加载Nginx服务:

    sudo systemctl reload nginx

7. 启动PHP-FPM

  1. 启动PHP-FPM服务:

    sudo systemctl start php7.4-fpm
  2. 设置PHP-FPM开机自启动:

    sudo systemctl enable php7.4-fpm

8. 验证部署

  1. 打开浏览器并访问你的域名或IP地址,你应该能够看到Laravel的欢迎页面。

示例代码

以下是一个简单的Laravel控制器示例:

<?php

namespace AppHttpControllers;

use IlluminateHttpRequest;

class HomeController extends Controller
{
    public function index()
    {
        return view('home');
    }
}

这个示例创建了一个名为HomeController的控制器,并定义了一个名为index的方法,该方法返回视图home

通过以上步骤,你应该能够在Laravel Forge上成功部署你的Laravel应用程序到DigitalOcean服务器。

黑板Bug讲师

黑板Bug讲师

介绍

部署Laravel应用程序可以成为一个平滑且高效的流程,借助Laravel Forge与DigitalOcean服务的捆绑。通过本例教程,您将跟随步骤学习如何使用Laravel Forge在DigitalOcean上部署Laravel应用,包含多个示例。完成此教程后,您应该对从零到完成Laravel应用程序的部署过程有一个坚实的理解。

Laravel Forge 是由 Laravel 提供的令人惊叹的工具,它帮助您自动化应用程序的服务器配置和管理。它允许您从 GitHub、Bitbucket 或 GitLab 上的仓库直接部署到托管在 DigitalOcean(以及其他云提供商)上的云服务器。它处理服务器管理的复杂性,并提供一个用户友好的界面来操作。

前置条件:在我们开始部署之前,让我们确保您已经具备以下条件:

一个在版本控制系统(如GitHub、GitLab或Bitbucket)下托管的Laravel应用程序

一个DigitalOcean账户

一个使用 Laravel Forge 的账户。

部署步骤逐一进行。

步骤 1:在 DigitalOcean 上设置服务器

第一步是在DigitalOcean上设置一个服务器来托管我们的Laravel应用程序。Forge使得这一步骤变得简单。

点击“创建服务器”,让Forge为您自动配置它。

添加你的SSH密钥,以便Forge和本地机器能够与你的Droplet进行通信。

选择服务器的区域。

请选择您喜欢的Droplet大小。

选择DigitalOcean作为您的提供商。

前往“服务器”并点击“创建服务器”。

登录到您的Laravel Forge账户。

一旦服务器准备好,红石就会显示您的服务器的IP地址,您需要稍后使用这个信息。

步骤 2:添加您的网站到 Forge

在服务器启动运行后,是时候向 Forge 添加您的 Lumen 应用程序了:

一旦创建好了站点,Forge 将提供一个默认的服务器块配置。后期可能需要对其进行调整以符合应用的具体需求。

请填写您的域名详情,并确保您选择“Laravel”作为站点类型。

在服务器控制台的“站点”部分,点击“创建站点”。

在锻造台(Forge)仪表板上,点击您的服务器以访问服务器仪表板。

请注意,您需要更新DNS,使其指向您之前获取的DigitalOcean服务器的IP地址。

步骤 3:设置仓库

目前,我们将连接Forge到您的代码库:

请在提供的文本区域中添加任何构建或部署脚本,Forge 应在拉取您的应用程序后执行这些脚本。一个典型的脚本可能是:

在这一栏里,设置部署分支。通常这是“master”或“main”,取决于版本控制系统中的设置。

选择包含您的Laravel应用程序的源控制系统,允许Forge安装应用。

点击“Git”标签页。在这里,你可以连接Forge站点到源代码控制。

在服务器仪表板内,点击刚刚创建的站点。

cd /home/forge/{your-site-domain} php artisan migrate --force

该脚本将导航到您的应用程序目录并运行Laravel迁移。

步骤4:配置环境

每个Laravel应用程序都需要环境变量,这些变量对于其正常运行至关重要:

点击“更新环境”,当完成时,这将更新您的app的.env文件以包含正确的凭据。

编辑环境变量以反映您的应用程序设置,例如数据库连接详细信息以及任何其他所需的服务凭据。

在服务器的仪表板上,点击您的站点,然后转到“环境”标签页。

您的环境配置应安全并反映应用程序的生产设置。

步骤 5:设置部署触发器

Forge 可以自动部署您的应用程序,当您对 Git 仓库进行更改时:

如果您需要更多的控制,可以选择每次手动部署或为自定义工作流程设置部署钩子。

如果你想让Forge自动部署新提交到指定分支,请启用“快速部署”功能。

在您的Forge站点仪表盘的“应用程序”标签页中,找到“部署”部分。

配置部署触发器后,您的应用程序将在连接的仓库每次推送时自动部署,或者如果您选择了手动触发选项,则可以手动触发它。

第6步:管理SSL证书

确保您的Laravel应用程序的安全HTTPS连接需要管理SSL证书:

一旦证书安装,点击“激活”以在您的站点上强制执行HTTPS。

只需点击“Let’s Encrypt”按钮,Forge 就会为您获取并安装SSL证书。

在这里,你可以选择安装一个新的SSL证书。Laravel Forge 提供了一个免费的Let’s Encrypt证书,对于许多应用来说通常是足够的。

在Forge服务器控制台的仪表盘上,点击您的站点并导航到“SSL”标签页。

Laravel Forge 会定期为 Let’s Encrypt 的证书进行续期,因此在初始设置后不需要额外的工作。

第7步:安排和执行备份

在部署的最后一步,设置数据备份计划是个明智的选择。以下是Forge中设置备份的方法:

确保备份存放在安全且可靠的地点,远离您的托管基础设施。

设置备份频率、保留策略和备份位置,通常可以使用云存储提供商。

Forge允许您通过点击“配置备份”来配置数据库备份。此外,还可以备份文件。

在您的Forge服务器仪表板中,导航到“备份”标签页。

根据Forge提供的协议,你可以配置一个稳定的数据库和文件备份环境,以在灾难发生时处理数据检索。

结论

部署到DigitalOcean使用Laravel Forge简化了部署过程,管理服务器配置,并使自动化和扩展更加易于访问。通过利用Forge的特性和自动化选项,您可以轻松地运行并更新您的Laravel应用程序。有了今天的部署处理好后,您就可以专注于开发具有竞争力的Laravel和PHP应用。

长工码奴1523

长工码奴1523

要在Laravel Forge上将Laravel部署到DigitalOcean,请按照以下步骤操作:

步骤 1: 创建一个新项目

首先,你需要创建一个新的Laravel项目。你可以从GitHub上获取最新版本的Laravel并将其安装到你的计算机上。

composer create-project --prefer-dist laravel/laravel myproject

然后,运行php artisan serve来启动开发服务器,并访问 http://localhost:8000/ 来查看你的新项目。

步骤 2: 部署到DigitalOcean

2.1 设置环境变量

在你的项目根目录下创建 .env.example 文件,并编辑它以设置你的 DigitalOcean 账户信息(API密钥和区域):

vi .env.example

替换 .env.example 中的 <your_api_key><your_region> 为实际的 API 密钥和区域名称。

2.2 配置 Laravel Forge

  • vendor 目录下的 app/Console/Commands/forge.php 文件中,添加以下代码:
<?php

namespace AppConsoleCommands;

use IlluminateSupportFacadesFile;
use LaravelForgeForgeServiceProvider;

class ForgeCommand extends IlluminateFoundationConsoleKernel
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'forge';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Run a forge command';

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        // 保存环境配置文件
        File::put(base_path('config/app.php'), file_get_contents(__DIR__.'/../bootstrap/app.php'));
        File::put(base_path('database/migrations'), file_get_contents(__DIR__.'/../database/migrations'));

        // 更新数据库迁移脚本
        File::put(base_path('database/migrations/2023_06_04_175942_create_users_table.php'), file_get_contents(__DIR__.'/../database/migrations/2023_06_04_175942_create_users_table.php'));
        File::put(base_path('database/seeds/2023_06_04_175942_create_users_seeds.sql'), file_get_contents(__DIR__.'/../database/seeds/2023_06_04_175942_create_users_seeds.sql'));
    }
}

2.3 启动 DigitalOcean

  • 使用以下命令启动 DigitalOcean 控制台:
./vendor/bin/digitalocean.sh start

这将打开一个新的终端窗口,允许您登录到您的 DigitalOcean 计划。

2.4 安装 Forge CLI

  • 如果你还没有安装 Laravel Forge 的命令行界面 (CLI),现在是时候了。执行以下命令:
./vendor/bin/fake -v

如果一切正常,你应该看到一些关于 Forge 的输出。如果没有,尝试更新虚拟环境:

composer update

2.5 挂载和激活Forge服务

  • 打开 digitalocean.json 文件并添加以下数据:
"services": [
    {
      "name": "forge",
      "command": "vendor/bin/fake -v",
      "mountpoint": "/opt/virtualbox"
    }
]
  • 将以上文件保存为 digitalocean.json 并重启 Docker 服务。

2.6 运行Forge

  • 现在,你可以通过运行以下命令在虚拟机中启动 Forge:
./vendor/bin/fake -c digitalocean.json

步骤 3: 测试部署

  • 登录到你的 DigitalOcean 虚拟机后,访问 https://<your-droplet-ip>/laravel-forge 来测试你的 Laravel 应用。

注意事项

  • 在进行任何更改之前,请确保备份你的应用和数据库。
  • 只有在熟悉Forge的工作原理并且理解如何配置它时才尝试部署Laravel。
  • 如果遇到任何问题,请查阅官方文档或寻求社区的帮助。