利用Nginx搭建HTTP访问的Git服务器过程记录。搭建 Git 仓库,实现 SSH 协议、配合 Nginx 实现 HTTP 协议拉取、推送代码。利用 Nginx 实现 Gitweb 在线浏览代码,使用 Gitweb-theme 更新默认 Gitweb 样式。
一. 准备工作:
1. 下载nginx并安装
(1). 编辑repo文件,这里以64位的CentOS 7为示例:
> vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/x86_64/
gpgcheck=0
enabled=1
(2). 保存退出后,使用yum安装.可以选择把动态模块也安装上,具体参见上述站点
> yum install nginx -y
2. 下载git并安装
(1).不推荐使用yum安装的git版本,过低了.到github下载最新的git源码. 下载地址: https://github.com/git/git/releases
> yum -y remove git
> yum -y install perl cpio autoconf tk zlib-devel libcurl-devel openssl-devel expat-devel gettext-devel perl-ExtUtils-MakeMaker automake gcc
> cd /usr/local/src; wget https://github.com/git/git/archive/v2.11.1.tar.gz
> tar zxf v2.11.1.tar.gz && cd git-2.11.1
> autoconf && ./configure && make && make install
> git --version
(2). 这个时候,git安装好了,可以选择较高的稳定版本.我用的时候2.11.1
3. 下载spawn-fcgi, fcgi-devel, fcgiwrap并安装
这里需要注意的是,如果你没有安装前面的automake和gcc,请这里一定要把这些依赖安装好.
> cd /usr/local/src;
> git clone https://github.com/lighttpd/spawn-fcgi.git
> cd spawn-fcgi && ./autogen.sh && ./configure && make && make install
(2). 安装fcgi-devel.
安装前,需要先安装epel源,不然安装不了fcgi-devel
> yum -y install epel-release
> yum -y install fcgi-devel
(3). 安装fcgiwrap. GitHub地址: https://github.com/gnosek/fcgiwrap
> cd /usr/local/src
> git clone https://github.com/gnosek/fcgiwrap.git
> cd fcgiwrap && autoreconf -i && ./configure && make && make install
二. 配置
1. 添加Git的运行用户, Git仓库初始化
> useradd -r -s /sbin/nologin git
> mkdir -p /data/git && cd /data/git
> git init --bare repo.git && chown -R git.git /data/git
> c