首页
登录 | 注册

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 的信息了:
lighttpd 与 gitweb 搭建服务器

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

如果显示找不到项目,
lighttpd 与 gitweb 搭建服务器

有几种可能:

  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配置

相关文章

  • 为什么说 Java 程序员到了必须掌握 Spring Boot 的时候?
    Spring Boot 2.0 的推出又激起了一阵学习 Spring Boot 热,就单从我个人的博客的访问量大幅增加就可以感受到大家对学习 Spring Boot 的热情,那么在这么多人热衷于学习 Spring Boot 之时,我自己也在 ...
  • MongoDB【快速入门】
    1.MongDB 简介 MongoDB(来自于英文单词"Humongous",中文含义为"庞大")是可以应用于各种规模的企业.各个行业以及各类应用程序的开源数据库.作为一个适用于敏捷开发的数据库,Mo ...
  • 前言 本文也会在github上我的web-study仓库中同步更新,欢迎star. 戳这里,传送 准备工作 判断是否需要FQ或安装镜像,镜像一般可安装国内淘宝镜像,详情可看这里:cnpm npm install -g cnpm --regi ...
  • 如何零基础开始自学Python编程
    转载——原作者:赛门喵 链接:https://www.zhihu.com/question/29138020/answer/141170242 0. 明确目标 我是真正零基础开始学Python的,从一开始的一窍不通,到3个月后成功搭建了一个 ...
  • 快三个月没写博客了,一直在忙着准备面试和去面试的路上,所以没时间写,也没什么想写的.现在告一段落,就总结一波! 面经 本人真的是双非一本.为什么加“真的”?因为有的人也写着"双非一本,进入阿里",但是某电子科技大学,比9 ...
  • insufficient permission for adding an object to repository database .git/objects
        1.出错截图: 有时候使用软件项目管理系统github时候,会出现一些问题截图如下: 2.出错原因 从出错的地方就知道是因为权限不足导致,回想一下,在链接远程服务器时候,不小心切换为管理员权限进行了git pull更新的项目的代码. ...

2019 cecdns.com webmaster#cecdns.com
12 q. 0.076 s.
京ICP备10005923号