centos 搭建git php自动部署。

2016-10-15 寒川 计算机

最近没什么事儿,研究了一下git自动部署,采用webhook用php执行同步git的方式进行自动部署。最开始整了好几小时,用的https连接git仓库,最终解决了,写下来作个简单的总结。

    在centos上搭建git,因centos上用yum install 命令默认装的是1.7.x的git,与最新的相差较大,同时带用户密码的https远程库无法访问,出现类似以下错误:

error: The requested URL returned error: 401 Unauthorized while accessing
因此需要安装最新版的git,安装如下:

1. 需要给 CentOS 下载安装编译工具。

yum groupinstall "Development Tools"
2.安装一些 git 构建或执行时需要的其他依赖。
yum install zlib-devel perl-ExtUtils-MakeMaker asciidoc xmlto openssl-devel
3. 下载 git 最新版本的源代码
$ wget -O git.zip https://github.com/git/git/archive/master.zip

4.解压源文件

unzip git.zip
5、编译安装
cd git-master
autoconf
./configure
make && make install
ln -s /usr/local/bin/git /usr/bin/ #如果在/usr/bin/下存在git,先删除后再执行此句
6、查看git版本,恭喜安装完成
git --version
6、其它:在git安装过程中出现如下错误:
No rule to make target `usr/lib64/per15/CORE/config.h`, needed by `perl.mak`. Stop
请执行
yum install -y perl-devel.x86_64
安装后重新执行第5步进行git的安装。

自动部署:

先cd进web服务器的web目录,再执行(注意用的www用户,www为php运行时的用户):

sudo -u www git init #初始化库
sudo -u www git remote add origin https://user:pass@git.oschina.net/xx/xx.git #添加一个仓库,注意,用户密码中有@时用%40代替。
加一个webhook,文件名为:git.php,内容如下:
<?php
$dir = __DIR__;
$handle = popen('cd '.$dir.' && git fetch --all && git pull origin master','r');
$read = stream_get_contents($handle);
print_r($read);
pclose($handle);
然后在git库中加些git.php为webhook即可。

标签: php linux CentOS git

评论(4) 浏览(3749)

Powered by emlog 蜀ICP备12030225号

川公网安备 51042102000001号

sitemap