搭建 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 的信息了:

这样所有程序都可以正常运行。

如果显示找不到项目,

有几种可能:

  1. /etc/gitweb.conf 里面的项目路径不对。
  2. /etc/gitweb.conf 的项目路径是对的,但是 lighttpd 是以 www-data 用户身法运行,而 www-data 没有权限读取项目信息或仓库文件中的一些文件没有执行权限

References

  1. https://git-scm.com/book/zh/v2/服务器上的-Git-GitWeb
  2. http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_Configuration
  3. gitweb安装及lighttpd配置

lighttpd 与 gitweb 搭建服务器的更多相关文章

  1. 利用ADSL拨号上网方式如何搭建服务器

    序:搭建服务器需要两个条件硬件服务器和固定公网IP,随便一台个人电脑都可以作为硬件服务器,就剩下一个问题,如何获得一个固定公网IP. 第一章 扫盲:ADSL拨号上网方式,本地IP与公网IP的区别 一. ...

  2. nginx+tomcat+memcached搭建服务器集群及负载均衡

    在实际项目中,由于用户的访问量很大的原因,往往需要同时开启多个服务器才能满足实际需求.但是同时开启多个服务又该怎么管理他们呢?怎样实现session共享呢?下面就来讲一讲如何使用tomcat+ngin ...

  3. Telegraf+InfluxDB+Grafana搭建服务器监控平台

    Telegraf+InfluxDB+Grafana搭建服务器监控平台 tags:网站 个人网站:https://wanghualong.cn/ 效果展示 本站服务器状态监控:https://statu ...

  4. 【Node.js】利用node.js搭建服务器并访问静态网页

    node.js是一门服务端的语言,下面讲讲如何利用node.js提供给我们的api来搭建服务器,并且访问静态网页 项目结构如下 ------------------------------------ ...

  5. SSR搭建服务器

    SSR搭建服务器一站式教程:https://ssr.tools/252

  6. node学习笔记2——搭建服务器

    搭建服务器关键词: require('http') —— 请求 node 里面的 http 模块 createServer —— 创建一个服务器 request —— 请求 response—— 响应 ...

  7. koa2搭建服务器+使用mongoose链接mangodb

    使用node搭建服务器,用到了现在比较流行的框架koa. 1.初始化package.json npm init -y 2.安装koa2 npm i koa --save 3.搭建服务器 const K ...

  8. NodeJs本地搭建服务器,模拟接口请求,获取json数据

    最近在学习Node.js,虽然就感觉学了点皮毛,感觉这个语言还不错,并且也会一步步慢慢的学着的,这里实现下NodeJs本地搭建服务器,模拟接口请求,获取json数据. 具体的使用我就不写了,这个博客写 ...

  9. nodejs搭建服务器 和 操作数据库

    1.express框架:是一个简洁而灵活的 node.js Web应用框架.一般的项目都是基于这个框架开发的.http://www.runoob.com/nodejs/nodejs-express-f ...

随机推荐

  1. IntelliJ OpenCV 开发环境搭建

    Windows下的IntelliJ + OpenCV开发环境搭建 基于IntelliJ IDEA 15 和 OpenCV 3.1.0 1. 在OpenCV官网下载OpenCV安装程序,双击解压到目标目 ...

  2. SSL证书 .pem转.pfx

    使用OpenSSL来进行转换 OpenSSL官网没有提供windows版本的安装包,可以选择其他开源平台提供的工具.例如 http://slproweb.com/products/Win32OpenS ...

  3. AOP原理解析及Castle、Autofac、Unity框架使用

    转自:https://www.cnblogs.com/neverc/p/5241466.html AOP介绍 面向切面编程(Aspect Oriented Programming,英文缩写为AOP), ...

  4. C#中的委托和事件的使用

    委托 事件的基础 将方法当做变量传递, 也有多播 事件 便于一对多的事件通知和联动操作 封装性,限制只能有+=和-=操作 用于间接的互相交互时解耦(直接或单向交互就可以直接调用了). 例如GridVi ...

  5. CentOS7系统更改网卡名为eth0

    centOS7系统更改网卡名为eth0 1.编辑grub参数 [root@localhost ~]# vim /etc/sysconfig/grub 2.在GRUB_CMDLINE_LINUX行中添加 ...

  6. 【ocp 052又加新题了】052新加的考试题及答案整理-第13题

    13.Which two are true about AWR snapshots? A) They are stored In the SYSAUX tablespace. B) They are ...

  7. mysql扩展库应用---在线词典程序范例

    1,在mysql中创建数据表words. create table words( id int primary key not null auto_increment, enword varchar( ...

  8. UIViewContentMode-

    图片很小,frame很大 图片很大,frame很小 UIViewContentModeScaleToFill, UIViewContentModeScaleAspectFit, UIViewConte ...

  9. python学习笔记1.4

    注释不被程序执行的辅助性说明信息- 单行注释:以#开头,其后内容为注释# 这里是单行注释- 多行注释:以'''开头和结尾''' 这是多行注释第一行这是多行注释第二行 ''' 保留字and elif i ...

  10. js 实现全国省市区三级联动

    效果: index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /& ...