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/

  • 相关阅读:
    三大主流负载均衡软件对比(LVS+Nginx+HAproxy)
    nginx 提示the "ssl" directive is deprecated, use the "listen ... ssl" directive instead
    centos安装nginx并配置SSL证书
    hadoop创建目录文件失败
    The server time zone value 'EDT' is unrecognized or represents more than one time zone.
    脚本启动SpringBoot(jar)
    centos做免密登录
    数据库远程连接配置
    Bash 快捷键
    TCP三次握手四次断开
  • 原文地址:https://www.cnblogs.com/wicub/p/6423904.html
Copyright © 2011-2022 走看看