dersonsena / yii2-deploy
Yii Framework 2 模块格式的自动部署模块
1.3.3
2017-08-09 12:09 UTC
Requires
- php: >=5.4.0
- yiisoft/yii2: >=2.0.4
- yiisoft/yii2-bootstrap: *
Requires (Dev)
- phpunit/phpunit: 4.0.*
README
Yii2 Deploy
Yii Framework 2 模块格式的自动部署模块。如果您希望每次在本地开发环境中执行 git push
命令时自动更新远程仓库,请按照以下说明和步骤操作。
预置要求
- 在服务器上安装 Git;
- 在您的 Web 服务器上启用 PHP 的
shell_exec
函数;
安装说明
推荐通过 composer 安装此扩展。
在终端执行
$ php composer.phar require dersonsena/yii2-deploy "*"
或在您的 composer.json
文件的 require
部分添加以下内容:
"dersonsena/yii2-deploy": "*"
步骤 1 - 注册模块
按照以下示例在配置文件 config/web.php
中注册模块
'modules' => [ ... 'deploy' => [ 'class' => 'dersonsena\deploy\DeployModule', 'token' => '<INSIRA UM TOKEN AQUI>', ], ... ]
您可以使用一些在线工具生成您的 token。以下是一些网站:
- http://www.miraclesalad.com/webtools/md5.php
- http://www.md5.cz
- http://passwordsgenerator.net/md5-hash-generator/
您也可以使用 Yii2 的 yii\base\Security 组件轻松生成 token,如下所示
echo \Yii::$app->security->generateRandomString()
步骤 2 - 进行首次测试
为测试目的,请通过浏览器访问此 URL
http://seudominio.com.br/deploy?t=SEU_TOKEN
模块应“返回”一个包含已执行命令的页面。
步骤 3 - 集成
如果步骤 2 中一切顺利,请按照以下步骤集成您的应用程序
3.1 与 Bitbucket 集成
- 导航到您的仓库地址,进入
settings
部分; - 导航到
Integrations >> Webhooks
部分; - 点击
Add Webhook
按钮; - 输入您喜欢的
title
; - 在
URL
字段中输入: http://seudominio.com.br/deploy?t=SEU_TOKEN - 点击
Save
按钮。
附加信息
日志生成
每次在生产服务器上执行命令时,Yii2-Deploy 都会在目录中生成一个 .txt
文件,其中包含终端输出的日志。
<APP_PATH>/runtime/deploy/20160626143800.txt
重要:只有在您不在开发环境 YII_ENV_DEV
中时才会生成 LOG。
更改分支
如果您想让 git pull
命令使用另一个分支,只需在 config/web.php
中覆盖 branch
属性,如下所示
'modules' => [ ... 'deploy' => [ 'class' => 'dersonsena\deploy\DeployModule', 'token' => '<SEU TOKEN>', 'branch' => 'meu-branch' ], ... ]
在开发环境中强制执行命令
默认情况下,Yii2-Deploy 模块不会在开发环境中执行生成的命令。但如果你想禁用它,只需在 config/web.php
中覆盖 forceExecuteCommands
属性,如下所示
'modules' => [ ... 'deploy' => [ 'class' => 'dersonsena\deploy\DeployModule', 'token' => '<SEU TOKEN>', 'forceExecuteCommands' => true ], ... ]
参数化
'modules' => [ ... 'deploy' => [ 'class' => 'dersonsena\deploy\DeployModule', 'token' => '<SEU TOKEN>', 'enableComposer' => true // Padrão: true 'gitBin' => '/usr/bin/git', // Caminho para o comando git do servidor (Padrão: /usr/bin/git) 'phpBin' => '/usr/bin/php', // Caminho para o comando php do servidor (Padrão: /usr/bin/php) 'composerBin' => '/usr/bin/composer' // Caminho para o comando composer do servidor (Padrão: /usr/bin/composer), 'composerHome' => '/path/to/.composer' // Caminho para o COMPOSER_HOME (Padrão: null) ], ... ]