読者です 読者をやめる 読者になる 読者になる

Around the modern stone age.

近年はシリコン(石)の半導体から進化した便利なもので溢れる時代。そんな気になった事や試した事など徒然と記す。

スポンサーリンク

【Ubuntu 16.04 LTS Server】gitwebを使う

Linux Git Ubuntu Apache

gitwebで、gitサーバ上のgitリポジトリ一覧を表示させる。

gitwebのインストール

# apt install gitweb

関連CGIモジュールのインストール

# apt install cgi.pm
  • 本モジュールをインストールしないと、"Can’t locate CGI.pm"のエラーが発生。

CGIモジュールを有効化

# a2enmod cgi
  • この時「AH00558エラー」が発生した。  127.0.1.1のFQDNが解決できないというもので、/etc/hosts に下記のように記述する事で解消。
  127.0.1.1    gitserver.hoge.com  gitserver

/etc/gitweb.conf の、リポジトリパスを確認

$projectroot = "/var/lib/git";
  • /var/lib/git -> /home/git/repositories へはシンボルリンクして参照させる。
  • シンボルリンクの作成手順は、git-daemonの記事参照。

gitoliteのリポジトリ一覧のパスを、/etc/gitweb.conf に記述

#$projects_list = $projectroot;
  ↓
$projects_list = "/home/git/projects.list";

下記記述を追加

# ページに表示されるサイト名
$home_link_str = "git://gitserver.hoge.com/git";

# ブラウザのタブに表示されるサイト名。
$site_name = "GitWeb >> gitserver repos";

# リポジトリのダウンロードを有効にする。下はzip形式でダウンロード。
$feature{'snapshot'}{'default'} = ['zip'];

gitwebから、gitリポジトリがアクセスできるように

gitグループに、www-dataユーザを追加しておく。

# usermod -a -G git www-data

gitoliteで、gitdwebからの参照を許可しpushする

$ cd gitolite-admin/conf
$ nano gitolite.conf
----------
repo testtest
    R       =   daemon gitweb
----------

$ git add gitolite.conf
$ commit
$ git push

gitweb.conf を有効にし、apacheを再起動

/etc/apache2/conf-available/gitweb.conf がインストールされているので、そのまま有効にする。

#a2enconf gitweb
# service apache2 restart

下記URLをブラウザから表示する

http://yoko.iobb.net/gitweb/

補足

gitwebは、/usr/lib/cgi-bin/gitweb のCGIを実行している
(実体は、/usr/lib/share/gitweb/ にある)

参考