luyadev / luya-deployer
这是LUYA使用Deployer(PHP的部署工具)部署应用的配方。
Requires
- deployer/deployer: ^7.0
Requires (Dev)
- luyadev/luya-testsuite: ^3.0
README
LUYA Deployer
这是使用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
文件。因此,您永远不应该发布私钥,而公钥可以存储在服务器上
- 生成SSH密钥
ssh-keygen -t rsa -b 2048 -C "luyadeployer"
- 当提示输入
输入密码(留空表示无密码):
时,跳过此步骤(至少在设置持续部署时)。 - 复制
~/.ssh/id_rsa.pub
的内容,这是公钥。 - 将公钥添加到服务器的
~/.ssh/authorized_keys
中或使用ssh-copy-id
。例如,Plesk等也有可视工具可以完成此操作Plesk SSH密钥扩展