git服务器自动化部署代码

问题描述:

以往开发时需要频繁上传代码到服务器很麻烦,能否将提交到版本控制的代码自动同步到服务器呢,答案是可行的

如果使用的是SVN的话服务器搭建SVN可以自动同步代码,这里不做介绍,下面以github,php环境为例介绍,其他环境类似

原理:

当git仓库发生变动时(推送,合并等),利用web钩子向服务器发送一条指令,服务器收到请求后,去相应的目录 git pull 代码

以gitlab  和PHP为例

实现:

1.服务端脚本server.php,valid_token为授权码,确保外网可以访问到

<?php
error_reporting(1);
$valid_token='erd6exiaoshuo222r3';

$client_token = $_SERVER['HTTP_X_GITLAB_TOKEN'];
$client_ip = $_SERVER['REMOTE_ADDR'];
if ($client_token !== $valid_token) die('token验证失败!');
$valid_ip = array('118.31.63.105'); //这里填你的gitlab服务器ip
if (!in_array($client_ip, $valid_ip)) die('Ip mismatch!');

error_log("log start :'.".shell_exec("cd /www/wwwroot/server && git pull"),3,"/www/wwwroot/weball/erver/errorsgitlab.log");

2.gitlab 配置web钩子

3.服务端配置git ,并git clone 此项目 ,

4.点击测试 确认是否正常

发布了85 篇原创文章 · 获赞 45 · 访问量 95万+

猜你喜欢

转载自blog.csdn.net/flysnownet/article/details/101771936