1. 前言

  git 是一个版本控制工具,类似svn.

  本文内容主要涉及git仓库通过浏览器访问(用web的方式去查看git提交历史记录,tag,branch等信息),即gitweb.

  效果图:

      

      

  在这里说下 gitweb 的运行流程(组成部分),方便整理思路以及后续查找问题所在,组成图:

      

  想要搭建gitweb 必须准备三个主要环境支持:apache, cgi 运行环境,git

  apache  提供浏览器的方式,就如Svn 可以通过浏览器访问一样,都是有apache 的支持

  cgi  这里用来解析gitweb.cgi 脚本(就如html 通过浏览器解析,变成网页一样)

  git  环境支持,如同运行java程序,一定要有jdk 环境一样

  


  2. git 仓库初始化

      这里仓库的作用就如数据库,来存储你的代码

sudo mkdir demo2
cd demo2/ sudo git init Initialized empty Git repository in /data/git/demo1/demo2/.git/ls -la
total
drwxr-xr-x root wheel : .
drwxr-xr-x root wheel : ..
drwxr-xr-x root wheel : .git // readme.md 新建文件
// 把新建的文件添加到git 索引中 (. 不能少,表示当前目录下的所有文件)
sudo git add . git status // 查看状态
On branch master Initial commit Changes to be committed:
(use "git rm --cached <file>..." to unstage) new file: readme.md
// 提交
sudo git commit -am "init"
[master (root-commit) 832bb9e] init
file changed, insertions(+)
create mode readme.md

   3. 配置Apache 的cgi模块

    cgi 按照可以参照 (http://www.cnblogs.com/web1992/p/4525286.html)

     查询你的apache 是否安装了cgi  模块,命令如下

 sudo apachectl -M |grep cgi
// 出现这个 cgi-module 表示已经安装了cgi
proxy_fcgi_module (shared)
proxy_scgi_module (shared)
cgi_module (shared)  

  在 Apache httpd.conf 配置文件中添加

    Include /etc/apache2/vhost/*.conf 

#这里的意思我的 gitweb.conf 文件放在 /etc/apache2/vhost/ 文件夹下面,

    这里通过Apache 的虚拟主机(vhost)来访问gitweb,配置如下(都有英文注释):

localhost:vhost web$ cat gitweb.conf 

#Alias /git /usr/local/git/share/gitweb
#Alias /git /usr/local/git-share/share/gitweb
Alias /git /usr/local/share/gitweb/gitweb/ <Directory /usr/local/share/gitweb/gitweb/>
#Options +ExecCGI
#AddHandler cgi-script .cgi
#DirectoryIndex gitweb.cgi
# Let anyone see our repositories (for now)
Order allow,deny
AllowOverride None
# Rquiree all granted
Options Indexes FollowSymLinks ExecCGI
Allow from all
Satisfy Any
# Enable CGI in this directory
Options +ExecCGI # Run .cgi files using mod_cgi
AddHandler cgi-script .cgi # Use gitweb.cgi for directory listings. This takes care of
# requests to /git and /git/
# 配置index
DirectoryIndex gitweb.cgi # This tells gitweb.cgi where to find its config file
# By default it looks in /etc/gitweb.conf, so if you place
# your config file somewhere else you should specify this.
#SetEnv GITWEB_CONFIG /etc/gitweb.conf #SetEnv GITWEB_CONFIG /usr/local/git/share/gitweb/gitweb-css.conf
# 这里配置git仓库位置,css 样式, git 安装路径
# gitweb-css.conf 十分重要
SetEnv GITWEB_CONFIG /usr/local/share/gitweb/gitweb/gitweb-css.conf # Enable mod_rewrite
RewriteEngine on # Rewrite /git/repo.git URIs to be /git/gitweb.cgi/repo.git
# This assumes your repository names end with '.git'. I don't
# know if that is always a safe assumption.
RewriteRule ^([^.]+\.git.*)$ /git/gitweb.cgi/$ [L,PT]
</Directory>

   在这里注意,我的gitweb 相关的cgi脚本 & 静态的资源(css,img等)都在

   /usr/local/share/gitweb/gitweb/

    文件下面,如下: 

localhost:vhost web$ ls -la /usr/local/share/gitweb/gitweb/
total
drwxr-xr-x web admin : .
drwxr-xr-x web admin : ..
-rw-r--r-- web admin : gitweb-css.conf
-rwxr-xr-x web admin : gitweb.cgi
drwxr-xr-x web admin : static
localhost:vhost web$

  4.  gitweb cgi脚本配置 & 静态资源配置

     gitweb-css.conf  内容:  

localhost:vhost web$ cat /usr/local/share/gitweb/gitweb/gitweb-css.conf 

#####################################################################################
# This is the directory where your git repositories live
# git 的仓库位置,十分重要
$projectroot = '/data/git/'; # This is the title of the site
$site_name = "用用的笨笨笨笨的用用 gitweb site"; # This is used to generate the URI for each repo
$my_uri = "/git"; # Text and URI for the home link
$home_link_str = "My Projects";
# 好像不支持中文 %>_<%
#$home_link_str = "用用的笨笨笨笨的用用 Projects";
$home_link = "/git"; # These tell gitweb the URIs for the images and css it needs.
# Depending on the version of GitWeb you have there may be
# different locations. Newer versions include a /static/ path
# element and a javascript library. ###### OLDER GITWEB ######################
#@stylesheets = ("/git/gitweb.css");
#$logo = "/git/git-logo.png";
#$favicon = "/git/git-favicon.png";
#$javascript = "/git/gitweb.js";
# 这里配置css 样式的路径,如果配置不正确,页面就会很丑的~~
##### NEWER GITWEB #######################
@stylesheets = ("/git/static/gitweb.css");
$logo = "/git/static/git-logo.png";
$favicon = "/git/static/git-favicon.png";
$javascript = "/git/static/gitweb.js"; # This just makes the description field wider so you can read
# it better
$projects_list_description_width = ; # This makes repo links use pretty URLs like /git/repo.git
$feature{'pathinfo'}{'default'} = [];

  编辑 gitweb.cgi  在文件的 约77 行处,可以找到  our $GIT   这里 设置git 的安装路径(如果安装git路径不配置不正确,会报500内部错误)

   # core git executable to use
# this can just be "git" if your webserver has a sensible PATH
#our $GIT = "/usr/local/git/bin/git";
#our $GIT = "/usr/local/bin/git";
our $GIT = "/usr/bin/git"; # absolute fs-path which will be prepended to the project path
#our $projectroot = "/pub/scm";
our $projectroot = "/pub/git";

  第一行可以看到 #!/usr/bin/perl  字样,使用perl 写的页面(好羡慕

gitweb 搭建教程的更多相关文章

  1. Spring+SpringMvc+Mybatis框架集成搭建教程

    一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以在自己搭建SSM框架集成的时候,出现了这样或者那样的问题,很是苦恼 ...

  2. Hbase+ Phoenix搭建教程

    Hbase+ Phoenix搭建教程 一.Hbase简介 HBase是基于列存储.构建在HDFS上的分布式存储系统,其主要功能是存储海量结构化数据. HBase构建在HDFS之上,因此HBase也是通 ...

  3. Windows Server 2003 IIS6.0+PHP5(FastCGI)+MySQL5环境搭建教程

    准备篇 一.环境说明: 操作系统:Windows Server 2003 SP2 32位 PHP版本:php 5.3.14(我用的php 5.3.10安装版) MySQL版本:MySQL5.5.25 ...

  4. Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境搭建教程

    原文地址:http://www.osyunwei.com/archives/7378.html 搬运是为了自己找资料方便. 准备篇 一.环境说明: 操作系统:Windows Server 2012 R ...

  5. Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境搭建教程

    准备篇 一.环境说明: 操作系统:Windows Server 2012 R2 PHP版本:php 5.5.8 MySQL版本:MySQL5.6.15 二.相关软件下载: 1.PHP下载地址: htt ...

  6. 【网站搭建教程】黑手VIP卡盟搭建教程(无KEY)

    黑手VIP卡盟搭建教程(无KEY)教程介绍:第一课 卡盟介绍与课程流程.exe第七课 卡盟源码的搜集与选择_.exe第三课 卡盟域名之注册.exe第九课 IIS的本机架设_.exe第二课 卡盟域名之选 ...

  7. LAMP环境搭建教程

    原文:LAMP环境搭建教程 学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP.WAMP.MAMP等.这里我介绍一下LAMP环境的搭建,即Linux.Apache.M ...

  8. Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程

    这篇文章主要介绍了Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程,需要的朋友可以参考下 准备篇 一.环境说明: 操作系统:Windows Server 201 ...

  9. Win2008 R2 IIS7.5+PHP5(FastCGI)+MySQL5环境搭建教程

    现在很多朋友想尝试win2008 r2来跑web服务器,跟win2003相比界面差别有点大,有些人可能不太习惯,不过以后是趋势啊,这里简单分享下,方便需要的朋友 准备篇 一.环境说明: 操作系统:Wi ...

随机推荐

  1. nuxt 头部引入js文件 第一次进入页面不加载js文件的解决方法

    head () { return { title: '', meta: [ { hid: 'description', name: 'description', content: '' } ], sc ...

  2. 第2节 azkaban调度:17、azkaban的两个服务模式的安装

    2.3.3.azkaban两个服务模式安装 1.确认所需软件: Azkaban Web服务安装包 azkaban-web-server-0.1.0-SNAPSHOT.tar.gz Azkaban执行服 ...

  3. Sniper OJ部分writeup

    0x00 shellcode pwn 因为题目直接有源码,我就不拖进IDA了,直接看代码 这是一个典型的栈溢出,我们只需要构造shellcode获得/bin/sh权限就可以得到flag.下面是所用脚本 ...

  4. iOS 设计模式

    很赞的总结 iOS Design Patterns 中文版 IOS设计模式之一(MVC模式,单例模式) IOS设计模式之二(门面模式,装饰器模式) IOS设计模式之三(适配器模式,观察者模式) IOS ...

  5. 51nod 1242 斐波那契数列的第N项——数学、矩阵快速幂

    普通算法肯定T了,所以怎么算呢?和矩阵有啥关系呢? 打数学符号太费时,就手写了: 所以求Fib(n)就是求矩阵  |  1  1  |n-1  第一行第一列的元素. |  1  0  | 其实学过线代 ...

  6. linux中进程亲和性绑定

    什么是绑核所谓绑核,其实就是设定某个进程/线程与某个CPU核的亲和力(affinity).设定以后,Linux调度器就会让这个进程/线程只在所绑定的核上面去运行.但并不是说该进程/线程就独占这个CPU ...

  7. day12-图

  8. LeetCode101--对称二叉树

    ''' 给定一个二叉树,检查它是否是镜像对称的. ''' class TreeNode: def __init__(self, x): self.val = x self.left = None se ...

  9. Repo command reference

    Repo command reference In this document init sync upload diff download forall prune start status Rep ...

  10. python基础学习笔记——os模块

    #OS模块 #os模块就是对操作系统进行操作,使用该模块必须先导入模块: import os #getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) result = os. ...