欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-04 19:47:25
...

阅读本文前你必须预先装好CentOS并且已经安装和配置好Nginx了。


安装GIT私服套件


  • 安装centos6.5-centos7.0


  • 安装nginx


  • yum install -y?git gitweb spawn-fcgi?fcgi-devel?fcgi


以上步骤执行完毕后,我们安装了:
  • git服务


  • Gitweb,因为git是一个光板,只支持 git clone [email protected]:/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文件。


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

配置GIT服务器-初始化GIT服务


useradd git