gitweb 搭建教程
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 搭建教程的更多相关文章
- Spring+SpringMvc+Mybatis框架集成搭建教程
一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以在自己搭建SSM框架集成的时候,出现了这样或者那样的问题,很是苦恼 ...
- Hbase+ Phoenix搭建教程
Hbase+ Phoenix搭建教程 一.Hbase简介 HBase是基于列存储.构建在HDFS上的分布式存储系统,其主要功能是存储海量结构化数据. HBase构建在HDFS之上,因此HBase也是通 ...
- 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 ...
- Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境搭建教程
原文地址:http://www.osyunwei.com/archives/7378.html 搬运是为了自己找资料方便. 准备篇 一.环境说明: 操作系统:Windows Server 2012 R ...
- 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 ...
- 【网站搭建教程】黑手VIP卡盟搭建教程(无KEY)
黑手VIP卡盟搭建教程(无KEY)教程介绍:第一课 卡盟介绍与课程流程.exe第七课 卡盟源码的搜集与选择_.exe第三课 卡盟域名之注册.exe第九课 IIS的本机架设_.exe第二课 卡盟域名之选 ...
- LAMP环境搭建教程
原文:LAMP环境搭建教程 学习PHP脚本编程语言之前,必须先搭建并熟悉开发环境,开发环境有很多种,例如LAMP.WAMP.MAMP等.这里我介绍一下LAMP环境的搭建,即Linux.Apache.M ...
- Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程
这篇文章主要介绍了Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程,需要的朋友可以参考下 准备篇 一.环境说明: 操作系统:Windows Server 201 ...
- Win2008 R2 IIS7.5+PHP5(FastCGI)+MySQL5环境搭建教程
现在很多朋友想尝试win2008 r2来跑web服务器,跟win2003相比界面差别有点大,有些人可能不太习惯,不过以后是趋势啊,这里简单分享下,方便需要的朋友 准备篇 一.环境说明: 操作系统:Wi ...
随机推荐
- 单源最短路Dijstra
#include<iostream> #include<cstring> #define INF 0x3f3f3f3f using namespace std; ][],d[] ...
- table 会有默认的外边框,内部会有分割线
.表格中边框的显示 只显示上边框 <table frame=above> 只显示下边框 <table frame=below> 只显示左.右边框 <table frame ...
- Linux之centos7 VMware安装教程
Linux系统安装 下面是centOS7的安装过程 VMware 系统搭建 1 新建虚拟机 2 选择自定义 3 选择稍后安装操作系统 4 选择操作系统的版本Linux centos64位 5 选择处理 ...
- Jarvis OJ-Level3-x64
linux64位ROP技术 #!/usr/bin/env python from pwn import * elf = ELF('level3_x64') Io = remote('pwn2.jarv ...
- postcss.config.js配置文件的配置方法
module.exports = { plugins: { 'autoprefixer': {}, } }
- 【图论】hdu6370Werewolf
有理有据的结论题 Problem Description "The Werewolves" is a popular card game among young people.In ...
- [POJ] 3362 Telephone Lines
Telephone Lines Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7978 Accepted: 2885 Descr ...
- Vue的响应式规则
对象属性的响应规则 <body> <div id="root"> {{msg}} </div> </body> <script ...
- 【java】抽象类继承关系
抽象类: 抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充. 一个类不能同时被 abstract 和 final 修饰.如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将 ...
- 剑指offer重构二叉树 给出二叉树的前序和后序重构二叉树
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树. 假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4, ...