gitoliteで作るプライベートgitサーバー(gitwebの導入)
gitolite で git サーバーを構築したので、gitweb を導入してブラウザでリポジトリを確認できるようにしました。
gitolite の導入については、以下のエントリーを参照してください。
apache は導入済みであることが前提です。
gitweb のインストール
$ sudo aptitude install gitweb
gitweb の設定
/etc/gitweb.conf の $projectroot に gitolite のリポジトリディレクトリを指定します。
他のパラメータはデフォルトのままで大丈夫です。
$ sudo vi /etc/gitweb.conf - $projectroot = "/var/cache/git"; + $projectroot = "/var/lib/gitolite/repositories";
apache の設定
gitweb を deb パッケージでインストールすると、
- /usr/lib/cgi-bin/gitweb.cgi
- /usr/share/gitweb/*(.css|.png)
のような構成になっているので、ファイルにアクセスできるように apache を設定します。
私の環境では、/var/htdocs/git 以下で gitweb を動かすようにしたので、必要なファイルを準備します。
あと、apache ユーザーが git リポジトリを読める必要があるので、 git グループに追加します。
$ sudo mkdir -p /var/htdocs/git $ sudo cp /usr/share/gitweb/*.png /var/htdocs/git $ sudo cp /usr/share/gitweb/gitweb.* /var/htdocs/git $ sudo ln -s /usr/lib/cgi-bin/gitweb.cgi /var/htdocs/git/gitweb.cgi $ sudo chown -R apache:apache /var/htdocs/git $ sudo /usr/sbin/usermod -G git apache
apache を設定して、再起動します。
$ sudo vi /etc/apache2/sites-available/gitweb <VirtualHost *:80> ServerName gitweb.example.com ServerAdmin gitweb@example.com SetEnv GITWEB_CONFIG /etc/gitweb.conf DocumentRoot /var/htdocs/git <Directory /> Options None AllowOverride None Order deny,allow Deny from all </Directory> <Directory /var/htdocs/git/> Options FollowSymLinks +ExecCGI AllowOverride None AddHandler cgi-script .cgi DirectoryIndex gitweb.cgi Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/git_error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/git_access.log combined </VirtualHost> $ sudo a2ensite gitweb $ sudo /etc/init.d/apache2 restart
http://gitweb.example.com/ にアクセスすると、リポジトリが参照できるようになります。