动机
前段时间st0rm23在自己的服务器上搭好了自己的gitlab,现在我准备开搞自己的web项目了。但是如果每次写完都要用一些文件传输的工具上传到自己的服务器就显得很低效是吧,也会降低自己写代码的动力。现在st0rm23就借着自己的gitlab,用一个webhook就可以自动将自己的gitlab上的代码部署到web目录下了。那么这样我们只要push一下代码到master上就可以自动生效了,用浏览器重新访问下网站就可以看了勒( •̀ ω •́ )y。
原理介绍
1、配置gitlab当push动作的时候,访问服务器上的一个链接比如xxx.example.com/boot.php
2、boot.php里面写着一行代码,会让服务器git pull相应项目的代码到web目录。
3、pull结束,代码就在web目录了,我们只要重新访问网站就可以了。
核心就是push的时候,gitlab会调用服务器上的脚本,服务器上的脚本就会从git重新拉取项目文件。当然有一些安全性的设计,下面就来详细地说明。
位置
啥?有同学找不到webhook,进入到某个项目中,然后点配置按钮(有个小齿轮),里面就有一个webhook配置,需要填链接地址和token。
webhook位置
配置服务端
先在服务端生成一对你的SSH密钥,因为之后服务器要用ssh方式免账号密码从gitlab上pull代码。用ssh-keygen在服务器上生成密钥,或者你已经有密钥了就跳过这一步。
$ ssh-keygen
有了密钥之后,复制你的公钥,在你的git