赞
踩
最初,写完项目后,通过ftp把代码传到服务器上,后续如果有修改,再把修改的文件通过ftp上传到服务器进行覆盖,这个流程属实麻烦。
后来使用git代码仓库管理,本地写好代码后,push到仓库,然后到服务器上pull,操作相对比较方便。
但是,依旧觉得这样还是很麻烦,先不说本地push,然后到服务器pull,这只是1台服务器的情况下,如果有多台服务器呢?
其实可以利用webhooks进行自动化部署:本地push后,线上自动pull,这样就方便多了。
下面以gitee做例子,github也同理。
添加webhook
新建项目->打开项目地址->管理->webhooks->添加
URL:通知地址,根据项目填写地址即可,例如 https://xxx.com/webhooks.php
WebHook 密码/签名密钥:这里我用的是WebHook密码
事件的话按需选择,这里我选的是Push,也就是对项目进行push操作后会触发该webhook事件。
最后点击添加即可。
创建ssh公钥
一般php运行使用的是www用户,具体的可以在webhooks.php里面:
PHP
然后在webhook里面点击测试,我这边输出的结果是:
PHP
那么需要切换到www用户 su www 进行创建ssh公钥
如果出现错误,那么需要vim /etc/passwd,找到www用户,把最后面的修改为bin/bash:
BASIC
保存后再su www即可。
接下来是创建ssh公钥:
Bash
三次回车即可,接着:
Bash
把输出的公钥添加到gitee项目的部署公钥管理里面:
首次请先在项目根目录下进行git pull,然后输入yes,后续就可以通过webhooks进行自动pull了。
编写webhooks.php
PHP
另外需要开放exec、shell_exec函数,一般环境中默认是禁用的,如果项目是laravel、tp5这些的话,一般也就已经打开了的。
另一种简单的方法
编辑项目根目录下的.git/config文件,修改url为下面格式即可:
Bash
两种方法的区别
明显的,一个通过ssh公钥进行管理,一个是明文的账号密码,如果是自己的服务器,其实没多大关系,但仍然建议使用ssh公钥的方式。
本文标题:如何利用webhooks进行自动化部署
本文链接:https://www.kyjszj.com/htzq/2244.html
作者授权:除特别说明外,本文由 开源技术之家 原创编译并授权 开源技术之家 刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。