阅读本文前你必须预先装好CentOS并且已经安装和配置好Nginx了。
安装GIT私服套件
- 安装centos6.5-centos7.0
- 安装nginx
- yum install -y?git gitweb spawn-fcgi?fcgi-devel?fcgi
以上步骤执行完毕后,我们安装了:
- git服务
- Gitweb,因为git是一个光板,只支持 git clone gituser@hostname:/repositories这样的协议,对于eclipse开发者来说键入一堆的git 命令将会是一个恶梦,因此我们必须有一个图形化的界面并且让git支持http协议来支持我们的“远程协作 ”
- spawn-fcgi,这个东西特别有意思,因为nginx默认是不支持cgi的,而gitweb是用cgi写的,因此我们才安装fastcgi,而fastcgi又要通过spawn-fcgi来启动。。。因此。。。必须要装spawn-fcgi。
- fcgi-devel 和 fcgi都属于fastcgi运行时的lib库了
安装fcgiwrap
从以下网址下载该组件:https://codeload.github.com/gnosek/fcgiwrap/legacy.tar.gz/master
运行以下命令:
全部安装完后注意检查以下必要文件是否存在
运行以下命令:
cd fcgiwrap
autoreconf -i
Configure
Make
make install
全部安装完后注意检查以下必要文件是否存在
- /etc/init.d 目录下有一个spawn-fcgi程序
- /usr/bin 目录下有一个spawn-fcgi程序
- /var/www/git目录下是gitweb所有的文件(网页版git)
- /etc/目录下有一个gitweb.conf文件
- /etc/sysconfig/目录下有一个spawn-fcgi文件
开始配置GIT私服-修改/etc/gitweb.conf文件
$projectroot = "/home/git/repositories";
@git_base_url_list= ("git://192.168.0.101", "http://192.168.0.101:81");
$git_temp = "/tmp";
$home_text = "indextext.html";
@stylesheets = ("gitweb.css");
$javascript = "gitweb.js";
@diff_opts = ();
$feature{pathinfo}{default} = [1];
$feature{'highlight'}{'default'} = [1];
以上配置做了这么几件事:
- 所有的git的子项目:如“hello.git”全部位于/home/git/repositories目录下
- Git的常用两种协议对外暴露的URL:
- 一个使用的是git协议
- 一个使用的是http协议,并且它的端口号为81
- @feature是gitweb的属性,它告诉gitweb可以如:代码高亮,路径信息等,gitweb中还有许多功能强大的@feature
开始配置GIT私服-修改/etc/sysconfig/spawn-fcgi文件
# You must set some working options before the "spawn-fcgi" service will work.
# If SOCKET points to a file, then this file is cleaned up by the init script.
#
# See spawn-fcgi(1) for all possible options.
#
# Example :
#SOCKET=/var/run/php-fcgi.sock
#OPTIONS="-u apache -g apache -s $SOCKET -S -M 0600 -C 32 -F 1 -P /var/run/spawn-fcgi.pid -- /usr/bin/php-cgi"
以上是原来文件的内容
修改后的内容如下显示,注意 红色加粗部分:
# You must set some working options before the "spawn-fcgi" service will work.
# If SOCKET points to a file, then this file is cleaned up by the init script.
#
# See spawn-fcgi(1) for all possible options.
#
# Example :
#SOCKET=/var/run/php-fcgi.sock
#OPTIONS="-u apache -g apache -s $SOCKET -S -M 0600 -C 32 -F 1 -P /var/run/spawn-fcgi.pid -- /usr/bin/php-cgi"
FCGI_SOCKET=/var/run/fcgiwrap.socket
FCGI_PROGRAM=/usr/local/sbin/fcgiwrap
FCGI_USER=nginx
FCGI_GROUP=nginx
FCGI_EXTRA_OPTIONS="-M 0700"
OPTIONS="-u $FCGI_USER -g $FCGI_GROUP -s $FCGI_SOCKET -S $FCGI_EXTRA_OPTIONS -F 1 -P /var/run/spawn-fcgi.pid -- $FCGI_PROGRAM"
启动spawn-fcgi
chkconfig --levels 2345 spawn-fcgi on
/etc/init.d/spawn-fcgi start
把spawn-fcgi设为开机启动,并启动该服务,该服务成功启动后会在:
/var/run目录下生成一个fcgiwrap.socket文件。
配置GIT服务器-初始化GIT服务
useradd git