搬自自己的51cto博客,不想用51cto了
我用的linux的宝塔面板
代码是php
流程
1.创建秘钥
linux创建rsa密钥对(创建的是www用户的秘钥)
sudo -Hu www ssh-keygen -t rsa
运行之后会让你填具体路径,可以写/home/www/.ssh/id_rsa.pub
还会让你填密码短语,不用填,直接回车
还会再让你填密码短语,还不填,直接回车
2.
配置gitlab
经过上一步的操作 /home/www/.ssh/目录会有一个id_rsa.pub文件,打开文件复制里面的内容
在gitlab中找到秘钥部署
填写上刚才复制的内容,标题随便填
3.
在linux中新建一个网站,网站中写一个api.php,php文件可以随便写,写成index.php也行
比如网站的地址是123.123.123.123:6666
php文件内容如下,也可以适当做修改
<?php if (!isset($_REQUEST['s'])) { exit('error'); } $s = $_REQUEST['s']; $config = [ // 这里写需要git pull的项目的根目录 '/oapc' => '/www/wwwroot/xxx/oa', // ]; if (!isset($config[$s])) { exit('error'); } $path = $config[$s]; $comand = "cd {$path} && git pull"; $res = exec($comand); $log = [ 'time' => date('Y-m-d H:i:s'), 'pathth' => $path, 'result' => $res, ]; // 记录日志 write_log($s,json_encode($log)); exit('OK'); function write_log($path,$msg) { $file = date('Ymd').'.log'; file_put_contents("logs/{$file}",$msg.PHP_EOL,FILE_APPEND); }
4.
然后回到gitlab的web钩子选项
链接填写:123.123.123.123:6666/oapc
保存之后,当推送代码完毕后,gitlab就会访问此链接,触发上面网站的内容,运行git pull命令
注意!!!!!!!!!!!:需要将php的exec函数放行
5.克隆代码
当前用户为www
sudo -uwww git config --global credential.helper store
使用www用户拉代码
sudo -uwww git clone [email protected]:mayuanye/app.git
如果因为权限问题,需要add . 和commit -m的话,记得同样使用sudo -uwww git.......来操作
标签:pull,www,git,log,gitlab,自动更新,path,php From: https://www.cnblogs.com/zonglonglong/p/18293442