luyadev/luya-deployer

这是LUYA使用Deployer(PHP的部署工具)部署应用的配方。

3.0.0 2023-05-03 08:31 UTC

README

LUYA Logo

LUYA Deployer

LUYA Total Downloads Latest Stable Version Join the chat at https://gitter.im/luyadev/luya

这是使用PHP Deployer部署LUYA网站的配方。

LUYA Deployer的3.0版本与PHP Deployer 7兼容

安装

将deployer composer包添加到您的项目中

composer require luyadev/luya-deployer --dev

创建一个包含您的主机配置内容的deploy.php文件,并将其存储在项目根目录中

<?php
namespace Deployer;

require 'vendor/luyadev/luya-deployer/luya.php';

// define your configuration here
host('SSHHOST.COM')
    ->setLabels(['stage' => 'prod'])
    ->set('remote_user', 'SSHUSER')
    ->set('deploy_path', '~/httpdocs');

set('repository', 'https://USER:PASSWORD@github.com/VENDOR/REPO.git');

要将应用部署到上述配置的服务器,只需进入控制台并运行

./vendor/bin/dep luya prod

LUYA Deployer现在将使用prod 配置部署到上述主机。`stage()`方法决定了应该使用哪个配置环境,因此这些值必须相互关联。

配置托管

为了运行您的网站,您必须将网站根目录修改为current/public_html文件夹。Deployer将创建以下文件夹

  • current
  • releases
  • shared

这些文件夹位于您定义的deploy_path文件夹中。因此,`current/public_html`应该是唯一可以通过Web访问的目录。

选项

可以通过set(OPTION, VALUE)定义几个选项。建议为特定服务器设置选项

host('luya.io')
    ->stage('prod')
    ->set(COMPOSER_IGNORE_PLATFORM_REQS, true)
    ->set('deploy_path', '~/httpdocs');

可用选项

要配置要部署的分支,请使用set('branch', 'myCheckoutBranch');

Unglue

为了使用unglue,您可以在您的deploy.php中添加after('luya:commands', 'unglue');。这将下载unglue phar文件并根据.unglue文件编译文件。

授权密码/SSH密钥

由于`password()`方法已被删除,认证可以通过SSH密钥或输入部署时的密码来完成。`dep luya prod`命令将提示用户输入密码,除非无法通过SSH密钥连接。默认情况下将使用`~/.ssh/id_rsa`进行第一次尝试。您可以使用以下方法配置ssh设置

->configFile('~/.ssh/config')
->identityFile('~/.ssh/id_rsa')
->forwardAgent(true)
->multiplexing(true)

阅读PHP Deployer文档以获取更多信息。虽然我们不能涵盖SSH密钥的所有内容,但这里有一个非常基本的示例设置。首先,您必须创建一个SSH密钥,然后您想要连接的服务器必须存储了公钥.pub文件。因此,您永远不应该发布私钥,而公钥可以存储在服务器上

  1. 生成SSH密钥 ssh-keygen -t rsa -b 2048 -C "luyadeployer"
  2. 当提示输入输入密码(留空表示无密码):时,跳过此步骤(至少在设置持续部署时)。
  3. 复制~/.ssh/id_rsa.pub的内容,这是公钥。
  4. 将公钥添加到服务器的~/.ssh/authorized_keys中或使用ssh-copy-id。例如,Plesk等也有可视工具可以完成此操作Plesk SSH密钥扩展