码云托管php,码云项目托管之自动化部署

一、首先要到https://gitee.com/注册一个账号,并创建一个项目。

1dc12228731a4cfcc37bed6320ab97f0.png

二、把本地和服务器公钥添加到码云公钥管理

3ec06c64062dbc72adbb2be6d56fce61.png

三、到webHooks下添加webHooks设置

3d2acdac085adc02dc71640fc23dba82.png

然后添加一个触发钩子的url,当开发者提交主分支的时候,首先是把版本信息提交到码云,然后码云主动请求该url,并携带版本信息及密码过去,进行验证后触发钩子,钩子再执行版本更新

462f87ad4b6c80396080e3ddf119c495.png

四、分别在客户端和服务器端克隆项目下来

git clone git@gitee.com:timelink/project.git

c163c4a0ae729fe94ed232bb4f46ca51.png

五、搭建钩子

创建第三步配置的url访问的php文件,我在此命名为gitCode.php文件,编辑

$post=json_decode($post ,true);//将json转换成数组

//验证密码 保证请求安全性

if($get['password'] == '12345'){exec('sudo -u root git pull origin master 2

}else{echo '失败';

}

然后再webhooks管理可以进行测试,出现相关成功信息,即说明配置成功

4d5c06fb4eaca6d04cd0970ca1ed83f0.png

注意:在此处有个小坑

(1)如果出现报错:sudo no tty present and no askpass program specified,则因为对于apache,由于其执行权限一般为apache:apache,用户和组都是apache, apache用户的特点是无密码,不能登录,无环境变量等。

解决方法:

1. 为sudoer文件开启w权限

chmod u+w /etc/sudoers

2. 执行visudo命令, 给apache用户分配sudo权限

visudo

a. 注释掉1行:

#Defaults requiretty

b. 增加2行:

Defaults visiblepw

apache ALL=(ALL) NOPASSWD:/usr/bin/sudo, /usr/local/bin/MP4Box, /usr/local/bin/ffmpeg

我这里允许在cgi中调用 /usr/bin/sudo, /usr/local/bin/MP4Box, /usr/local/bin/ffmpeg三个命令,您可以根据需要修改

注意上面这2行的作用至关重要,不可随意修改其格式

c. 保存退出visudo,退出跟vi命令一样

:wq

3. 关闭sudoer文件w权限

chmod -w /etc/sudoers

4.重启nginx

nginx -s reload

六、在客户端提交版本即可实现项目的自动化部署了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值