SERVICE PHONE

11338067394
新闻资讯NEWS CENTER你的位置: 首页 > 新闻资讯
千亿体育游戏_服务器部署:使用WebHook实现PHP自动部署Git代码

发布时间:2022-05-23  点击量:

本文摘要:类型coding 钩子github 钩子情况服务端:阿里云虚拟主机(Ubuntu16.04)coding 自动部署 WebHook3.0Windows 10 开发情况部署服务器虚拟主机设置coding 代码托管设置当地代码提交服务端设置1、建立web服务器用户目录这里以www用户为例,差别的情况请凭据自己情况自行修改sudo mkdir /var/www/.sshsudo chown -R www:www /var/www/.ssh/2、生成公钥(两个)git用户公钥(小我私家公钥通用)部署公钥(部署公钥用以部署项目, 只针对项目)其实设置一个小我私家公钥就可以,也就是通用公钥了3、用户公钥用于git clone时认证权限ssh-keygen -t rsa -C "Tinywan@gmail.com"# 然后一直回车就行# 生成的文件通常是 /root/.ssh/id_rsa,如果非root用户请检察提示上的路径4、部署公钥(非必须)sudo -Hu www ssh-keygen -t rsa # 请选择 "no passphrase",一直回车下去#sudo cat /var/www/.ssh/id_rsa.pub # 这个只是针对单个项目的sudo cat /home/www/.ssh/id_rsa.pub # 检察生成的密钥内容,复制全部-Hu www 下令: -u 代表切换到哪一个用户,这里说的是www -H 代表切换HOME情况变量的值,也就是password文件中www用户对应的home目录5、准备钩子文件在你的站点目录建设一个目录hook,我这里站点目录为:/home/www/web/,所有hook文件路径为:/home/www/web/hook,在hook目录新建index.php文件参考demo

千亿体育在线

类型coding 钩子github 钩子情况服务端:阿里云虚拟主机(Ubuntu16.04)coding 自动部署 WebHook3.0Windows 10 开发情况部署服务器虚拟主机设置coding 代码托管设置当地代码提交服务端设置1、建立web服务器用户目录这里以www用户为例,差别的情况请凭据自己情况自行修改sudo mkdir /var/www/.sshsudo chown -R www:www /var/www/.ssh/2、生成公钥(两个)git用户公钥(小我私家公钥通用)部署公钥(部署公钥用以部署项目, 只针对项目)其实设置一个小我私家公钥就可以,也就是通用公钥了3、用户公钥用于git clone时认证权限ssh-keygen -t rsa -C "Tinywan@gmail.com"# 然后一直回车就行# 生成的文件通常是 /root/.ssh/id_rsa,如果非root用户请检察提示上的路径4、部署公钥(非必须)sudo -Hu www ssh-keygen -t rsa # 请选择 "no passphrase",一直回车下去#sudo cat /var/www/.ssh/id_rsa.pub # 这个只是针对单个项目的sudo cat /home/www/.ssh/id_rsa.pub # 检察生成的密钥内容,复制全部-Hu www 下令: -u 代表切换到哪一个用户,这里说的是www -H 代表切换HOME情况变量的值,也就是password文件中www用户对应的home目录5、准备钩子文件在你的站点目录建设一个目录hook,我这里站点目录为:/home/www/web/,所有hook文件路径为:/home/www/web/hook,在hook目录新建index.php文件参考demo 设置 > 【WebHook】 > 【新建 WebHook】 > 粘贴你的hook/index.php所在的网址:http://auto.tinywan.com/index.php, 令牌可选,可是建议写上。稍过几秒刷新页面检察hook状态,显示为绿色勾就OK了12、服务端初始化项目我们需要先在服务器上clone一次,以后都可以实现自动部署了sudo -Hu www git clone https://git.coding.net/Tinywan/auto-test.git /home/www/web/hook/auto-test/ --depth=113、Windows客户端(1)开发端也克隆一份代码$ git clone https://git.coding.net/Tinywan/auto-test.gitCloning into 'auto-test'...remote: Counting objects: 3, done.remote: Total 3 (delta 0), reused 0 (delta 0)Unpacking objects: 100% (3/3), done.Checking connectivity... done.(2)新建文件index.php= 1) { $signature = $_SERVER['HTTP_X_HUB_SIGNATURE'];} elseif (substr_count($userAgent, 'Coding') >= 1) { $signature = $_SERVER['HTTP_X_CODING_SIGNATURE'];}list($hash_type, $hash_value) = explode('=', $signature, 2);$jsonContent = file_get_contents("php://input");$checkHash = hash_hmac($hash_type, $jsonContent, $secret); // e0ec9317f440f3fd47631852ef585c6b2680e8f8$fs = fopen('./auto_hook.log', 'a');$data = json_decode($jsonContent, true);fwrite($fs, 'Request on [' . date("Y-m-d H:i:s") . '] from [' . $data['pusher']['name'] . ']' . PHP_EOL);fwrite($fs, 'Data: '.json_encode($data).PHP_EOL);fwrite($fs, 'Service '.json_encode($_SERVER).PHP_EOL);// sha1 验证if ($checkHash && $checkHash === $hash_value) { fwrite($fs, '认证乐成,开始更新 ' . PHP_EOL); $repository = $data['repository']['name']; $pwd = getcwd(); $command = 'cd .. && cd ' . $repository . ' && git pull'; fwrite($fs, 'command '.$command.PHP_EOL); if (!empty($repository)) { shell_exec($command); fwrite($fs, $repository . ' 更新完成 ' . PHP_EOL); } $fs and fclose($fs);}举两个例子,怎么样写好代码最经典的算法,献给正在面试门路上的你如果你现在在面试PHP的门路上,看看面试基础题吧Redis相关面试题。

千亿体育在线

千亿体育在线

千亿体育游戏


本文关键词:千亿体育在线,千亿体育登录,千亿体育游戏

本文来源:千亿体育在线-www.sh-nsk-zc.com

地址:福建省南平市海州区央高大楼99号  电话:0800-180349386 手机:11338067394
Copyright © 2005-2021 www.sh-nsk-zc.com. 千亿体育在线科技 版权所有 ICP备案编:ICP备18531188号-4