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 ...
随机推荐
- c# 判断两个集合是否有交集
/// <summary> /// 判断是否有交集 /// </summary> /// <typeparam name="T"></ty ...
- 算法 UVA 11300
例3:题目描述 圆桌旁边坐着n个人,每个人有一定数量的金币,金币的总数能被n整除.每个人可以给他左右相邻的人一些金币,最终使得每个人的金币数量相等.你的任务是求出被转手的金币的数量的最小值. 输入格式 ...
- 24. 两两交换链表中的节点 leetcode
题目: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3->4, 你应该返回 ...
- Mac 上安装python3
1.安装包管理器 去包管理器官网按照提示安装包管理器 Homebrew 2.安装python3 安装完Homebrew ,输入指令安装python3 brew install python3 3.安装 ...
- Rabbitmq消息服务器通讯异常: name must not be blank
前人挖坑,后人填! 倒霉的遇到一个破项目,该 项目使用了 RabbitMQ 消息队列向服务器发送消息, 但在发送中老是报 RabbitMQ 服务器异常! 呃,查看了服务器,服务器好好的,日志中却是这样 ...
- “全栈2019”Java第六十二章:接口与常量详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 十大javaScript框架
http://blog.163.com/hongshaoguoguo@126/blog/static/180469812012102645931862/ Prototype特点:一个非常优雅的JS库, ...
- Windows下Anaconda安装 python + tensorflow CPU版
下载安装Anaconda 首先下载Anaconda,可以从清华大学的镜像网站进行下载. 安装Anaconda,注意安装时不要将添加环境变量的选项取消掉. 安装完成之后,在安装目录下cmd,输入: co ...
- 欧拉筛(线性筛) & 洛谷 P3383 【模板】线性筛素数
嗯.... 埃氏筛和欧拉筛的思想都是相似的: 如果一个数是素数,那么它的所有倍数都不是素数.... 这里主要介绍一下欧拉筛的思路:(欧拉筛的复杂度大约在O(n)左右... 定义一个prime数组,这个 ...
- [八分之三的男人] POJ - 1741 点分治 && 点分治笔记
题意:给出一棵带边权树,询问有多少点对的距离小于等于\(k\) 本题解参考lyd的算法竞赛进阶指南,讲解的十分清晰,比网上那些讲的乱七八糟的好多了 不过写起来还是困难重重(史诗巨作 打完多校更详细做法 ...