CentOS环境下使用GIT基于Nginx的私服搭建全过程

  1. 云栖社区>
  2. 博客>
  3. 正文

CentOS环境下使用GIT基于Nginx的私服搭建全过程

otteras 2016-06-13 16:22:19 浏览819
展开阅读全文

阅读本文前你必须预先装好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:
  1. 一个使用的是git协议
  2. 一个使用的是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

网友评论

登录后评论
0/500
评论
otteras
+ 关注