无标题文档
wdCP系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用教程) wdCDN系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用手册)
wdOS系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用教程) wdDNS系统 (介绍,功能特性,运行环境,安装说明,演示,常见问题,使用手册)
注册 发贴 提问 回复-必看必看 wddns免费智能 DNS 开通 本地或虚拟机使 用wdcp 一键包在mysql编 译时"卡住"
【300G高防】双线 无视攻击 wdcp官方技术支持/服务 阿里云8折优惠券 无敌云 腾讯云优惠中,现注册更有260代金额券赠送
返回列表 发帖
提问三步曲: 提问先看教程/FAQ索引(wdcp,wdcp_v3,一键包)及搜索,会让你更快解决问题
1 提供详细,如系统版本,wdcp版本,软件版本等及错误的详细信息,贴上论坛或截图发论坛
2 做过哪些操作或改动设置等

温馨提示:信息不详,很可能会没人理你!论坛有教程说明的,也可能没人理!因为,你懂的

[教程] CentOS利用WebHook实现PHP自动部署Git代码,其他系统原理相同

编辑权限:
vim /etc/sudoers
CentOS利用WebHook实现PHP自动部署Git代码,其他系统原理相同
在服务器查看apache2(我用的apache服务)执行用户,执行代码:ps -ef | grep httpd   #我的服务名是httpd,这里根据自己真实的写,比如有的是apache2。
我apache的运行用户是www
然后编辑权限:

root    ALL=(ALL)       ALL
下加
www     ALL=(ALL) NOPASSWD: /usr/bin/git

1. 生成公钥
公钥有两个:1. git用户公钥,2. 部署公钥:
用户公钥
ssh-keygen -t rsa -C "youname@163.com"
# 然后一直回车就行
# 生成的文件通常是 /root/.ssh/id_rsa,如果非root用户请查看提示上的路径
部署公钥
sudo -Hu www ssh-keygen -t rsa # 请选择 “no passphrase”,一直回车下去
#www用户的主目录可以vi /etc/passwd 修改成/home/www,然后在www下建立.ssh目录
例如:www:x:1000:1000::/home/www:/sbin/nologin
2. 准备钩子文件
创建和修改目录权限:
mkdir /home/wwwroot/website.com/hook
chown -R www:www /home/wwwroot/website.com/hook
写入钩子文件:
sudo -Hu www touch /home/wwwroot/website.com/hook/index.php
<?php
        $hook = str_replace('\"','"',$_POST['hook']);//码云webhook返回的json数据对引号都转义了,替换一下。
        $json = json_decode($hook,true);
        $target = '/www/web/hook/public_html/repos/weshop';
        $token = '码云上新建钩子时的密码';
        $cmd = "cd $target; sudo -Hu www git pull";
        if ($json['password'] != $token) {
                exit('error request');
        }
        else
                echo shell_exec($cmd);
?>
确保你的hook文件可以访问:http://example.com/hook/index.php,钩子准备完成。

3.修改git配置和保存git用户名密码(这步看情况吧)
sudo -Hu www git config --global credential.helper store # 永久保存
sudo -Hu www git config --global user.name "Bantes"
sudo -Hu www git config --global user.email "admin@xsooo.com" # 邮箱请与conding上一致


在GIT网站配置公钥

1.添加用户公钥

复制/root/.ssh/id_rsa.pub内容到个人设置页的SSH公钥里添加即可(https://coding.net/user/account/setting/keys)

2.添加部署公钥

复制/home/www/.ssh/id_rsa.pub的内容并添加到部署公钥:

选择项目 > 设置 > 部署公钥 > 新建 > 粘贴到下面框并确认

3.添加hook

初始化

1.我们需要先在服务器上clone一次,以后都可以实现自动部署了:

sudo -Hu www git clone https://git.coding.net/yourname/yourgit.git /home/wwwroot/website.com/  --depth=1
这个时候应该会要求你输入一次Coding的帐号和密码,因为上面我们设置了永久保存用户名和密码,所以之后再执行git就不会要求输入用户名和密码了。

**!!注意,这里初始化clone必须要用www用户**

2.往Coding.net提交一次代码测试:

在本地clone的仓库执行:

git commit -am "test hook" --allow-empty
git push
OK,稍过几秒,正常的话你在配置的项目目录里就会有你的项目文件了。

返回列表