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配置
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