GIT 本地仓库提交到码云,Linux仓库自动拉取

本地 windows 10 ,托管平台 码云 ,另一个远程仓库环境 Linux 

1 首先码云新建仓库

 

2 windows 本地拉取刚才项目 

 

3 linux拉取刚才新仓库

   

 

4 进入码云控制台刚才仓库-管理-WebHooks-添加

5,域名解析,nginx添加二级域名

 

vim  xxx.conf, 修改server_name root wq!保存退出,

然后  service nginx restart 重启nginx 

然后   cd /app 

mkdir xxx

cd xxx

vim index.php  <? phpinfo();

如果输出下图,说明webhooks配置成功

 接下来修改index.php内容为

<?php
$json = file_get_contents("php://input");
$data = json_decode($json,true);
if (isset($data['ref']) && $data['total_commits_count']>0) {
    $res = PHP_EOL."pull start ---------------------------------------------".PHP_EOL;
    $res .= shell_exec("cd /app/xxx && git pull  2<&1 ");
    $res_log = '------------------------------------------------------------'.PHP_EOL;
    $res_log .= $data['user_name'] . ' 在' . date('Y-m-d H:i:s') . '向' . $data['repository']['name'] . '项目的' . $data['ref'] . '分支push了' . $data['total_commits_count'] . '个commit:'.$data['commits']['message'];
    $res_log .= $res.PHP_EOL;
    $res_log .= "pull end -----------------------------------------------------".PHP_EOL;
    file_put_contents("/home/wwwlogs/webhook/".date('Y-m-d',time()).".txt", $res_log, FILE_APPEND);//写入日志到log文件中
}

wq!保存退出

回到本地新建个1.txt  新增-提交-推送到远程仓库

回到linux /app/git_hook文件夹下 ls, what fuck ? 没东西??

再看一下刚才/app/xxx/index.php 文件内容  最后一行为 写入文件到/home/wwwlogs/webhook/下? 进入/home下  ls 空空如也,原因是没有权限,

好吧 手动新建 mkdir -p /wwwlogs/webhook 建完给权限 chmod -R  777 wwwlogs/

 

好吧,回到本地新增个2.txt, 提交-推送,再回到/app/git_hook  ls 还是空空如也 ,进入/home/wwwlogs/webhook/目录下

看到日志写进去了 cat 日志名称

内容如下

进入 app 目录下 查看 git_hook权限    cd /app&ll  看到是root用户root组

chown -R www:www git_hook/

重新再本地新建3.txt 提交 推送 . 回到Linux  看到已经自动更新成功

附录 nginx 配置

server {
        charset utf-8;
        client_max_body_size 128M;
        listen 80;
        server_name  xxx.php404.com;
        root  /app/xxx;
        index  index.php;
    
        location ~* \.(eot|otf|ttf|woff)$ {
            add_header Access-Control-Allow-Origin *;
        }
    
        
        location / {
            index    index.html index.php;
          

            if ( !-e $request_filename) {
                rewrite ^/(.*)$ /index.php/$1 last;
                break;
            }
         #autoindex  on;
        }
    
        location ~ \.php {
            set $script $uri;
            set $path_info "";
            if ($uri ~ "^(.+\.php)(/.+)") {
                set $script $1;
                set $path_info $2;
            }
            include   fastcgi_params;
            fastcgi_index    index.php?IF_REWRITE=1;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_param    PATH_INFO    $path_info;
            fastcgi_param    SCRIPT_FILENAME    $document_root$fastcgi_script_name;
            fastcgi_param    SCRIPT_NAME    $script;
            try_files $uri =404;
        }
    access_log  /var/log/nginx/dubang-access.log  mains;
    }

 

posted @ 2019-12-17 15:10  X__cicada  阅读(965)  评论(0编辑  收藏  举报