logo

CLI

概述

Forge 提供了一个命令行工具,您可以使用它从命令行管理您的 Forge 服务器、站点和资源。

安装

需要 PHP 8.0+

您可以将 Forge CLI 作为全局 Composer 依赖项安装

bash
composer global require laravel/forge-cli

入门

要查看所有可用的 Forge CLI 命令列表并查看当前安装的版本,您可以在命令行中运行 forge 命令

bash
forge

身份验证

您需要生成一个 API 令牌才能与 Forge CLI 交互。令牌用于在不提供个人信息的情况下验证您的帐户。API 令牌可以在 Forge 的 API 仪表板 中创建。

生成 API 令牌后,您应该使用登录命令验证您的 Forge 帐户

bash
forge login
forge login --token=your-api-token

或者,如果您计划从您的 CI 平台验证 Forge,您可以在您的 CI 构建环境中设置一个 FORGE_API_TOKEN 环境变量。

当前服务器和切换服务器

通过 CLI 管理 Forge 服务器、站点和资源时,您需要了解当前活动的服务器。您可以使用 server:current 命令查看当前服务器。通常,您使用 Forge CLI 执行的大多数命令都将在活动服务器上执行。

bash
forge server:current

当然,您可以随时切换活动服务器。要更改活动服务器,请使用 server:switch 命令

bash
forge server:switch
forge server:switch staging

要查看所有可用服务器的列表,您可以使用 server:list 命令

bash
forge server:list

SSH 密钥身份验证

在使用 Forge CLI 执行任何任务之前,您应该确保您已为服务器上的 forge 用户添加了 SSH 密钥,以便您可以安全地连接到它们。您可能已经通过 Forge UI 完成了此操作。您可以通过运行 ssh:test 命令来测试 SSH 是否配置正确

bash
forge ssh:test

要配置 SSH 密钥身份验证,您可以使用 ssh:configure 命令。ssh:configure 命令接受一个 --key 选项,该选项指示 CLI 将哪个公钥添加到服务器。此外,您可以提供一个 --name 选项来指定应分配给密钥的名称

bash
forge ssh:configure

forge ssh:configure --key=/path/to/public/key.pub --name=sallys-macbook

配置完 SSH 密钥认证后,您可以使用 ssh 命令创建到服务器的安全连接。

bash
forge ssh

forge ssh server-name

站点

要查看所有可用站点的列表,您可以使用 site:list 命令。

bash
forge site:list

启动部署

Laravel Forge 的主要功能之一是部署。可以使用 Forge CLI 的 deploy 命令启动部署。

bash
forge deploy

forge deploy example.com

更新环境变量

您可以使用 env:pullenv:push 命令更新站点的环境变量。env:pull 命令可用于为给定站点拉取环境文件。

bash
forge env:pull
forge env:pull pestphp.com
forge env:pull pestphp.com .env

执行此命令后,站点的环境文件将被放置在您的当前目录中。要更新站点的环境变量,只需打开并编辑此文件即可。编辑完变量后,使用 env:push 命令将变量推回您的站点。

bash
forge env:push
forge env:push pestphp.com
forge env:push pestphp.com .env

如果您的站点正在使用 Laravel 的“配置缓存”功能或具有队列工作者,则新变量只有在站点再次部署后才会被使用。

查看应用程序日志

您也可以直接从命令行查看站点的日志。为此,请使用 site:logs 命令。

bash
forge site:logs
forge site:logs --follow              # View logs in realtime

forge site:logs example.com
forge site:logs example.com --follow  # View logs in realtime

查看部署输出/日志

当部署失败时,您可以通过 Forge UI 的部署历史记录屏幕查看输出/日志。您也可以随时使用 deploy:logs 命令在命令行中查看输出。如果 deploy:logs 命令没有附加参数,则将显示最新部署的日志。或者,您可以将部署 ID 传递给 deploy:logs 命令以显示特定部署的日志。

forge deploy:logs

forge deploy:logs 12345

运行命令

有时您可能希望对站点运行任意 shell 命令。command 命令将提示您输入要运行的命令。该命令将在站点的根目录下运行。

forge command

forge command example.com

forge command example.com --command="php artisan inspire"

Tinker

如您所知,所有 Laravel 应用程序默认都包含“Tinker”。要使用 Forge CLI 在远程服务器上进入 Tinker 环境,请运行 tinker 命令

forge tinker

forge tinker example.com

资源

Forge 为服务器提供各种资源和附加软件,例如 Nginx、MySQL 等。您可以使用 Forge CLI 对这些资源执行常见操作。

检查资源状态

要检查资源的当前状态,您可以使用 {resource}:status 命令

bash
forge daemon:status
forge database:status

forge nginx:status

forge php:status      # View PHP status (default PHP version)
forge php:status 8.1  # View PHP 8.1 status

查看资源日志

您也可以直接从命令行查看日志。为此,请使用 {resource}:logs 命令

bash
forge daemon:logs
forge daemon:logs --follow  # View logs in realtime

forge database:logs

forge nginx:logs         # View error logs
forge nginx:logs access  # View access logs

forge php:logs           # View PHP logs (default PHP version)
forge php:logs 8.1       # View PHP 8.1 logs

重启资源

可以使用 {resource}:restart 命令重启资源

bash
forge daemon:restart

forge database:restart

forge nginx:restart

forge php:restart      # Restarts PHP (default PHP version)
forge php:restart 8.1  # Restarts PHP 8.1

本地连接到资源

您可以使用 {resource}:shell 命令快速访问命令行 shell,该 shell 允许您与给定资源进行交互

bash
forge database:shell
forge database:shell my-database-name
forge database:shell my-database-name --user=my-user