tag:一下内容为引用的认识的某位andriod大佬的  方式为github  gitlab是一样的细节部分  有时间我再调整

webhook下载地址://download.csdn.net/download/lxp199741/12419741

上面的下载连接文件是可以配置多个项目的流程我已经更新在下面  但这个文件版本跟部署流程还可以优化等我有时间的哈

 

部署流程

1,启用shell_exec

编辑`php.ini`
vi /usr/local/php/etc/php.ini

找到`shell_exec`,在`disable_functions`中删除`shell_exec`分段。
重启`php.ini`保存设置

/etc/init.d/php-fpm重新启动

*以上是关闭函数禁用 如果是和我一样使用的宝塔可以直接在控制塔关闭

2,配置站点目录权限

由于Webhook的推送请求是通过http / https方式发送至服务器,根据webhook.php中的命令执行git pull的实为运行php的用户,根据以下命令可以查执行php用户为`www`
ps aux | grep PHP

确保仓库所在的站点目录所有者为www
chown -R www:www / home / wwwroot

*这里的/home/wwwroot为项目目录  请根据自身情况进行修改 这里是查看项目使用者 和 配置项目目录对应的用户
3,切换为www账户

以root帐户登陆服务器,修改www的登录权限
vi / etc / passwd
找到这行代码
www:x:1003:1003 :: / home / www:/ sbin / nologin
修为改  1003不用改  只修改后面的加载路径
www:x:1003:1003 :: / home / www:/ bin / bash

*这里做配置git前的准备 切换用户  一定记得要切换用户

4.配置Git

首先在本地创建ssh key;这里根据具体情况可以修改
ssh-keygen -t rsa -C“ your_email@youremail.com”  

后面的[your_email@youremail.com]替换您的Git登录邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在〜/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的键。
 回到git,进入帐户设置,左边选择SSH密钥,添加SSH密钥,标题随便填,粘贴密钥。为了验证是否成功执行以下命令

ssh -T git@git.3nn1.com

 
如果是第一次的会提示是否继续,输入yes就会看到:您已成功通过身份验证,但是GitHub不提供shell访问权限。这就表示已成功连上github。

 接下来我们要做的就是把本地仓库传到github上去在此之前还需要设置用户名和电子邮件因为github每次commit都会记录他们。

git config --global user.name“您的名字”
git config --global user.email“ your_email@youremail.com”

新建本地仓库Push到远程Github:

git init //目录下生成.git仓库文件

进入要上传的仓库,添加远程地址(** SSH方式**):
git remote add origin git@git.3nn1.com:yourName/yourRepo.git  
后面的yourName和yourRepo表示你在gitLub的用户名和刚才新建的仓库。

 

Clone远程仓库(SSH地址):

git clone git@git.3nn1.com:yourName/yourRepo.git  

《----------------------------------这里介绍的是多项目同时配置如果是单个项目请忽略----------------------------------------------》

介于上面的基本配置都已经部署完毕所以同一台服务器配置第n个项目时(n>1)可以从这里直接开始

直接执行上面的克隆命令

git clone (第二个项目的ssh地址)

然后在gitlab的项目上配置相应的集成webhook   和配置相应webhook文件即可 (记得处理相应的参数配置)

上面说的可优化项就是这里需要重复配置webhook文件  这个问题到时候我会处理一下配置到这里就ok了

《-----------------------------------------------------------------------------------------------------------------------------------------------------》

任意修改一个文件内容 然后用提交上传  README.md  是我修改的文件名

git add README.md

git commit -m '测试'

git push origin

更新测试

git pull origin master

git pull

如果提示为:Already up-to-date则表示成功

5,配置webhook.php

在项目网站根目录创建`webhook.php`获得外网链接为`https:// yourdoamin.com / webhook.php`
webhook.php在最上方有我上传的下载链接只需要更改`keySecret`和`wwwRoot`即可。

6:GitHub Webhooks配置

gitlab 代码贡献量统计 gitlab 500 whoops_linux

gitlab 代码贡献量统计 gitlab 500 whoops_gitlab 代码贡献量统计_02

 

      1:登录gitlab  进入项目-->设置-->集成
      2:url链接为webhook的可访问链接  一般放在服务器ip直接可访问的目录下

            安全令牌为webhook.php里自己配置的$keySecret的值

            推送事件选中没有特殊配置的情况留空

            最下面的shh证书验证根据自己的情况勾选

            点击保存

7:恢复关闭www登陆

exit退出www登陆切回root
vi / etc / passwd
恢复为
www:x:1003:1003 :: / home / www:/ sbin / nologin

 

 

//***********************************************************************************************************************************
git上传失败  项目文件部分丢失  强制拉取gitlab上的最新全部文件
git fetch --all  
 git reset --hard origin/master 
 git pull