若是是用 debian 系的 Linux 發行版,可使用 apt 下載安裝可執行的 gitwebphp
sudo apt-get install gitweb
若是想要下載源代碼編譯安裝,能夠參考 服務器上的-Git-GitWeb 上的內容。html
用 apt 下載好 gitweb 後,相應的 cgi 文件是放在 /usr/share/gitweb/
目錄下,分別有 gitweb.cgi、index.cgi 文件和 static 文件夾,index.cgi 是鏈接到 gitweb.cgi 的軟連接,而這個 cgi 文件是用 perl 寫的。git
另外,gitweb 的配置文件是 /etc/gitweb.conf
,能夠作一些修改:web
# path to git projects (<project>.git) $projectroot = "/path/to/project"; # enable history of each file $feature{'blame'}{'default'} = [1];
這樣就能夠在網頁中查看每一個文件的版本歷史了。chrome
把 /usr/share/gitweb
中的文件拷到 /var/html/gitweb
裏瀏覽器
sudo cp -Rf /usr/share/gitweb /var/www/
接下來配置服務器就能夠經過網頁查看倉庫的版本歷史和信息。通常而言,只須要服務器支持 cgi 就能夠實現咱們的目標。bash
相似的,用 apt 便可下載安裝 lighttpd。服務器
sudo apt-get install lighttpd
配置文件位於 /etc/lighttpd/lighttpd.conf
, 因爲須要用到 cgi 程序配合服務器進行響應,須要加載 lighttpd 的 cgi 模塊,在配置文件中加入:url
server.modules += ( "mod_cgi" )
或者在終端中輸入如下命令:.net
$ lighty-enable-mod cgi
配置 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 沒有權限讀取項目信息或倉庫文件中的一些文件沒有執行權限