メインメニュー
XAMPP アレンジ
IED
WSL2
-
道具箱
リポジトリ編
フレームワーク編
公開ソフトウェア
メタ
リンク
- PHP ライブラリ
- PHP 言語
git2:server:git-webGitサーバーの構築 - GitWeb
Git 2.24
— y2sunlight 2020-06-04
本章では、社内用のGitサーバーの構築について説明します。本編の「Smart HTTPによるGitサーバーの構築」によって、基本的なGitサーバーの機能は得られたので、次は、Webベースのブラウジング機能を追加します。Gitには、GitWebと呼ばれるCGIスクリプト(perl5)が付属しているのでこれを利用します。
サーバー環境
- CentOS 7.2 / Apache 2.4 / Git 2.24
関連記事
- Gitサーバーの構築 - Git Web
リンク
- Gitサーバー - GitWeb — Pro Git 2'nd Edition(日本語訳)
- Git on the Server - GitWeb — Pro Git 2'nd Edition(English)
- gitweb - Git web interface — Git Reference
GitWebのインストール
gitweb(CGI) を IUSリポジトリからインストールします。本章ではgit2.24を使用しているので、パッケージ名は、
git224-gitweb
です。Gitのインストールについての詳細は本編の IUSによるgit2の導入 をご覧ください。yum install --enablerepo=ius git224-gitweb
インストールの途中で、インストールしても良いか確認される (
Is this ok [y/d/N]:
) のでy
と回答します。正常にインストールされると最後に、完了のメッセージが表示されます。ここでインストールしたCGI (
gitweb.cgi
) は以下に設置されます。/var/www/git/gitweb.cgi
gitweb.cgi
(Perl5で書かれている) を以下のように編集します。/var/www/git
- gitweb.cgi
... 85 # absolute fs-path which will be prepended to the project path 86 #our $projectroot = "/pub/scm"; 87 our $projectroot = "/var/git"; ...
- 87行目:
$projectroot
に リポジトリ( 本章では/var/git
)のルートを指定します。
Apacheの設定
GitWeb をインストールすると
/etc/httpd/conf.d/git.conf.rpmnew
にApacheの設定ファイルの雛形が保存されています。/etc/httpd/conf.d
- git.conf.rpmnew
Alias /git /var/www/git <Directory /var/www/git> Options +ExecCGI AddHandler cgi-script .cgi DirectoryIndex gitweb.cgi </Directory>
これを参考に「Gitサーバーの構築 - Gitデーモン/Smart HTTP」で設定した git.conf を書き直します。
/etc/httpd/conf.d
- git.conf
# 環境設定 SetEnv GIT_PROJECT_ROOT /var/git SetEnv GIT_HTTP_EXPORT_ALL ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/ # GitWeb Alias /gitweb /var/www/git <Directory /var/www/git> Options +ExecCGI AddHandler cgi-script .cgi DirectoryIndex gitweb.cgi </Directory> # アクセス制御 <LocationMatch "^/(git|gitweb)"> <RequireAny> <RequireAny> # LAN内の特定のホストのみ許可 Require all denied Require host localhost Require ip 127.0.0.1 Require ip 192.168.1.0/24 </RequireAny> # Basic認証 AuthType Basic AuthName "Git Access" AuthUserFile /var/git/.htpasswd Require valid-user </RequireAny> # 全開 # Require all granted </LocationMatch>
/var/www/git
のエイリアスを/gitweb
に設定します。/var/www/git
下でCGIが動くようにして、gitweb.cgi
をインデックスに指定します。/git
と/gitweb
の両方で同じアクセス制御ができるようにLocationMatch
を変更します。
編集が終わったら、Apacheを再起動します。
systemctl restart httpd
GitWebへのアクセス
ブラウザで以下のURLにアクセスして下さい。
http://192.168.1.100/gitweb/ # IPアドレスは適宜変更して下さい
■ ロポジトリの一覧が表示されます。 ■ プロジェクト( ここでは
sandbox.git
)をクリックして下さい。■ プロジェクトの summary が表示されます。
■ summaryの他に shortlog, log, commit, commitdiff, tree の表示が出来ます
git2/server/git-web.txt · 最終更新: 2020/06/16 15:28 by y2sunlight
コメント