zoukankan      html  css  js  c++  java
  • 利用WebHook实现PHP自动部署Git代码

    平时项目代码都托管在Coding,然后每次提交了代码之后都要SSH到服务器上去git pull一次,很是繁琐,在看了OverTrue的《使用PHP脚本远程部署git项目》后就尝试在自己服务器上搞一下自动化部署,下面把部署步骤列出来算是一个分享与备忘。

    首先在Coding上创建一个项目,然后在本地clone一份。

    在服务器上(以Nginx环境为例,Apache请看OverTrue的教程)

    1. 生成公钥

    公钥有两个:1. git用户公钥,2. 部署公钥:

    git用户公钥

    部署公钥

    sudo -Hu www ssh-keygen -t rsa # 请选择 “no passphrase”,一直回车下去

    2. 准备钩子文件

    创建和修改目录权限:

    写入钩子文件:

    确保你的hook文件可以访问:http://example.com/hook/index.php,钩子准备完成。

    3.修改git配置和保存git用户名密码

    在Coding网站

    1.添加用户公钥

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

    2.添加部署公钥

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

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

    3.添加hook

    选择项目 > 设置 > WebHook > 新建hook > 粘贴你的hook/index.php所在的网址。比如:http://example.com/hook/index.php, 令牌可选,但是建议写上。

    稍过几秒刷新页面查看hook状态,显示为绿色勾就OK了。

    初始化

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

    这个时候应该会要求你输入一次Coding的帐号和密码,因为上面我们设置了永久保存用户名和密码,所以之后再执行git就不会要求输入用户名和密码了。

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

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

    在本地clone的仓库执行:

    OK,稍过几秒,正常的话你在配置的项目目录里就会有你的项目文件了。

    初始化Laravel框架

    1. 下载Composer

    在项目目录下执行:

    **!!记得在本地提交的时候在.gitignore中加上composer.phar**

    ======================================================

    以上只是针对我个人服务器环境的一个搭建过程,欢迎大家指正、探讨。

    服务器环境:Linux(CentOS) - AMH - Nginx & MySql
    WWW用户目录:/home/www
    项目目录:/home/wwwroot/Dev/website.com/web/
    Hook目录:/home/wwwroot/Dev/m.website.com/web/hook/

  • 相关阅读:
    【问题解决方案】计算机中缺少vcruntime140d.dll
    【学习总结】SQL的学习-1-初识数据库与sql
    【学习总结】SQL的学习-汇总
    【刷题】面筋-测开-软件测试与软件开发的对比
    【刷题】面筋-测开-软件测试岗位的理解+职业规划
    【刷题】面筋-测开-软件测试概述/对测试的理解
    【刷题】面筋-网络-HTTP中get和post对比
    【刷题】面筋-网络-HTTP的请求类型和状态码
    【学习总结】HTTP的几种请求类型和状态码解释
    【刷题】面筋-测开-微波炉测试用例
  • 原文地址:https://www.cnblogs.com/wicub/p/6423904.html
Copyright © 2011-2022 走看看