lighttpd 与 gitweb 搭建服务器
搭建 Git 仓库服务器
下载 gitweb
如果是用 debian 系的 Linux 发行版,可以使用 apt 下载安装可执行的 gitweb
sudo apt-get install gitweb
如果想要下载源代码编译安装,可以参考 服务器上的-Git-GitWeb 上的内容。
配置 gitweb
用 apt 下载好 gitweb 后,相应的 cgi 文件是放在 /usr/share/gitweb/ 目录下,分别有 gitweb.cgi、index.cgi 文件和 static 文件夹,index.cgi 是连接到 gitweb.cgi 的软链接,而这个 cgi 文件是用 perl 写的。
另外,gitweb 的配置文件是 /etc/gitweb.conf,可以做一些修改:
# path to git projects (<project>.git)
$projectroot = "/path/to/project";
# enable history of each file
$feature{'blame'}{'default'} = [1];
这样就可以在网页中查看每个文件的版本历史了。
把 /usr/share/gitweb 中的文件拷到 /var/html/gitweb 里
sudo cp -Rf /usr/share/gitweb /var/www/
接下来配置服务器就可以通过网页查看仓库的版本历史和信息。一般而言,只需要服务器支持 cgi 就可以实现我们的目标。
下载 lighttpd
类似的,用 apt 即可下载安装 lighttpd。
sudo apt-get install lighttpd
配置文件位于 /etc/lighttpd/lighttpd.conf, 由于需要用到 cgi 程序配合服务器进行响应,需要加载 lighttpd 的 cgi 模块,在配置文件中加入:
server.modules += ( "mod_cgi" )
或者在终端中输入以下命令:
$ lighty-enable-mod cgi
配置 lighttpd
配置 lighttpd,需要修改 document-root,将路径指向 gitweb:
server.document-root = "/var/html/gitweb"
默认的 index-file.names 只有 “index.php”,“index.html”,“index.lighttpd.html”,添加一个 “index.cgi” 或者 “gitweb.cgi”
注意这里添加完之后访问服务器并不能看到任何东西,而且我使用 chrome 访问的时候还会自动下载 index.cgi 脚本。
原因是服务器并没有执行 cgi 脚本,而是简单的将这个脚本当作文件发送到浏览器上。
之前说过,gitweb.cgi 是用 perl 写的,需要用 perl 执行,在 lighttpd 的配置文件里加上 :
cgi.assing =  ( ".cgi" => "/usr/bin/perl")
还需要做对 lighttpd 的配置文件做一点修改:
server.modules += ( "mod_rewrite" )
url.rewrite = (
  "^/static/(.*)$" => "/static/$1",
  "^(.*)$"    => "/gitweb.cgi$1"
)
大功告成
现在可以看到 Projects 的信息了:

这样所有程序都可以正常运行。
如果显示找不到项目,

有几种可能:
/etc/gitweb.conf里面的项目路径不对。/etc/gitweb.conf的项目路径是对的,但是 lighttpd 是以 www-data 用户身法运行,而 www-data 没有权限读取项目信息或仓库文件中的一些文件没有执行权限
References
- https://git-scm.com/book/zh/v2/服务器上的-Git-GitWeb
 - http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_Configuration
 - gitweb安装及lighttpd配置
 
lighttpd 与 gitweb 搭建服务器的更多相关文章
- 利用ADSL拨号上网方式如何搭建服务器
		
序:搭建服务器需要两个条件硬件服务器和固定公网IP,随便一台个人电脑都可以作为硬件服务器,就剩下一个问题,如何获得一个固定公网IP. 第一章 扫盲:ADSL拨号上网方式,本地IP与公网IP的区别 一. ...
 - nginx+tomcat+memcached搭建服务器集群及负载均衡
		
在实际项目中,由于用户的访问量很大的原因,往往需要同时开启多个服务器才能满足实际需求.但是同时开启多个服务又该怎么管理他们呢?怎样实现session共享呢?下面就来讲一讲如何使用tomcat+ngin ...
 - Telegraf+InfluxDB+Grafana搭建服务器监控平台
		
Telegraf+InfluxDB+Grafana搭建服务器监控平台 tags:网站 个人网站:https://wanghualong.cn/ 效果展示 本站服务器状态监控:https://statu ...
 - 【Node.js】利用node.js搭建服务器并访问静态网页
		
node.js是一门服务端的语言,下面讲讲如何利用node.js提供给我们的api来搭建服务器,并且访问静态网页 项目结构如下 ------------------------------------ ...
 - SSR搭建服务器
		
SSR搭建服务器一站式教程:https://ssr.tools/252
 - node学习笔记2——搭建服务器
		
搭建服务器关键词: require('http') —— 请求 node 里面的 http 模块 createServer —— 创建一个服务器 request —— 请求 response—— 响应 ...
 - koa2搭建服务器+使用mongoose链接mangodb
		
使用node搭建服务器,用到了现在比较流行的框架koa. 1.初始化package.json npm init -y 2.安装koa2 npm i koa --save 3.搭建服务器 const K ...
 - NodeJs本地搭建服务器,模拟接口请求,获取json数据
		
最近在学习Node.js,虽然就感觉学了点皮毛,感觉这个语言还不错,并且也会一步步慢慢的学着的,这里实现下NodeJs本地搭建服务器,模拟接口请求,获取json数据. 具体的使用我就不写了,这个博客写 ...
 - nodejs搭建服务器 和 操作数据库
		
1.express框架:是一个简洁而灵活的 node.js Web应用框架.一般的项目都是基于这个框架开发的.http://www.runoob.com/nodejs/nodejs-express-f ...
 
随机推荐
- Autofac的简单使用
			
今天记录一下学习Autofac的过程. 之前对IoC与DI一直很迷糊,今天研究了前辈们的文章后,才对IoC和DI有了一个初步的了解.感谢前辈们的无私奉献! 文章地址: 依赖注入和控制反转的理解,写的太 ...
 - Dubbo与Hadoop RPC的区别
			
本文来自网易云社区 RPC(Remote Procedure Call,远程过程调用)是一个计算机通信协议.该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编 ...
 - CookieJar和HTTPCookieProcessor
			
CookieJar和HTTPCookieProcessor 我们在使用爬虫的时候,经常会用到cookie进行模拟登陆和访问.在使用urllib库做爬虫,我们需要借助http.cookiejar库中的C ...
 - vue和jQuery的区别
			
从jquery到vue或者说是到mvvm的转变是一个思想的转变,是将原有的直接操作dom的思想转变到操作数据上去 vue和jquey对比 jQuery是使用选择器($)选取DOM对象,对其进行赋值.取 ...
 - jvisualvm_使用jstatd连接远程linux应用
			
[1]确定linux系统正确安装了ssh # sudo ps -e | grep ssh ①注意使用root,使用$会报如下错误: [appadmin@webcsuat2 ~]$ sudo ps -e ...
 - Linux常用运维指令
			
cd data/apps./=========================================== ps -ef | grep tomcatps -ef | grep desktopX ...
 - Corn表达式
			
CronTrigger CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表.CronTr ...
 - PHP将多维数组变成一维数组
			
function reduceArray($array) { $return = []; array_walk_recursive($array, function ($x) use (&$r ...
 - mysqldump 导出提示Couldn't execute SELECT COLUMN_NAME...
			
mysqldump命令: 导出数据库:mysqldump -h ip -u root -p dbname > db.sql; 导出数据库中的某个表:mysqldump -h ip -u root ...
 - java操作html格式数据
			
近期在做数据抓取功能,抓取到的数据为html格式,需在后台进行转换后取值,为了避免使用字符串查找方式获取而使用Jsonp完美实现. 1. 引入Jsonp: <dependency> < ...