Forge 提供了一个命令行工具,您可以使用它从命令行管理您的 Forge 服务器、站点和资源。
需要 PHP 8.0+
您可以将 Forge CLI 作为全局 Composer 依赖项安装
composer global require laravel/forge-cli
要查看所有可用的 Forge CLI 命令列表并查看当前安装的版本,您可以在命令行中运行 forge
命令
forge
您需要生成一个 API 令牌才能与 Forge CLI 交互。令牌用于在不提供个人信息的情况下验证您的帐户。API 令牌可以在 Forge 的 API 仪表板 中创建。
生成 API 令牌后,您应该使用登录命令验证您的 Forge 帐户
forge login
forge login --token=your-api-token
或者,如果您计划从您的 CI 平台验证 Forge,您可以在您的 CI 构建环境中设置一个 FORGE_API_TOKEN
环境变量。
通过 CLI 管理 Forge 服务器、站点和资源时,您需要了解当前活动的服务器。您可以使用 server:current
命令查看当前服务器。通常,您使用 Forge CLI 执行的大多数命令都将在活动服务器上执行。
forge server:current
当然,您可以随时切换活动服务器。要更改活动服务器,请使用 server:switch
命令
forge server:switch
forge server:switch staging
要查看所有可用服务器的列表,您可以使用 server:list
命令
forge server:list
在使用 Forge CLI 执行任何任务之前,您应该确保您已为服务器上的 forge
用户添加了 SSH 密钥,以便您可以安全地连接到它们。您可能已经通过 Forge UI 完成了此操作。您可以通过运行 ssh:test
命令来测试 SSH 是否配置正确
forge ssh:test
要配置 SSH 密钥身份验证,您可以使用 ssh:configure
命令。ssh:configure
命令接受一个 --key
选项,该选项指示 CLI 将哪个公钥添加到服务器。此外,您可以提供一个 --name
选项来指定应分配给密钥的名称
forge ssh:configure
forge ssh:configure --key=/path/to/public/key.pub --name=sallys-macbook
配置完 SSH 密钥认证后,您可以使用 ssh
命令创建到服务器的安全连接。
forge ssh
forge ssh server-name
要查看所有可用站点的列表,您可以使用 site:list
命令。
forge site:list
Laravel Forge 的主要功能之一是部署。可以使用 Forge CLI 的 deploy
命令启动部署。
forge deploy
forge deploy example.com
您可以使用 env:pull
和 env:push
命令更新站点的环境变量。env:pull
命令可用于为给定站点拉取环境文件。
forge env:pull
forge env:pull pestphp.com
forge env:pull pestphp.com .env
执行此命令后,站点的环境文件将被放置在您的当前目录中。要更新站点的环境变量,只需打开并编辑此文件即可。编辑完变量后,使用 env:push
命令将变量推回您的站点。
forge env:push
forge env:push pestphp.com
forge env:push pestphp.com .env
如果您的站点正在使用 Laravel 的“配置缓存”功能或具有队列工作者,则新变量只有在站点再次部署后才会被使用。
您也可以直接从命令行查看站点的日志。为此,请使用 site:logs
命令。
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"
如您所知,所有 Laravel 应用程序默认都包含“Tinker”。要使用 Forge CLI 在远程服务器上进入 Tinker 环境,请运行 tinker
命令
forge tinker
forge tinker example.com
Forge 为服务器提供各种资源和附加软件,例如 Nginx、MySQL 等。您可以使用 Forge CLI 对这些资源执行常见操作。
要检查资源的当前状态,您可以使用 {resource}:status
命令
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
命令
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
命令重启资源
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 允许您与给定资源进行交互
forge database:shell
forge database:shell my-database-name
forge database:shell my-database-name --user=my-user