MercurialとApacheの連携
ナビゲーションに移動
検索に移動
本ページでは、Apacheを経由したMercurialの利用手順を記述します。Mercurialのバージョンは1.7.3を想定しています。インストール手順はRedmineの導入手順を踏襲していることを想定します。
手順
mercurialのtar.gzファイルを解凍したディレクトリの直下にある「hgweb.cgi」ファイルをApacheのドキュメントフォルダ(例:/usr/local/apache2/htdocs 以下)に配置します。
「httpd.conf」に以下を追記します。
ScriptAlias /hg/test htdocs/hgweb.cgi
cgiファイルの配置やURLは適宜修正してください。
「hgweb.cgi」を編集します。
#!/usr/bin/env python
#
# An example hgweb CGI script, edit as necessary
# See also http://mercurial.selenic.com/wiki/PublishingRepositories
# import sys
# sys.path.append('/usr/bin/python')
# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "/var/lib/hg/test"
# Uncomment and adjust if Mercurial is not installed system-wide:
# 拡張モジュールのインストール先が既定と異なる場合は追加
import sys; sys.path.insert(0, "/usr/local/lib64/python2.4/site-packages")
# Webページの文字化け対策
import os; os.environ["HGENCODING"] = "UTF-8"
# Uncomment to send python tracebacks to the browser if an error occurs:
#import cgitb; cgitb.enable()
from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb import hgweb, wsgicgi
application = hgweb(config)
wsgicgi.launch(application)
最後にApacheを再起動すれば、「http://<HOST_NAME>/hg/hgweb.cgi」にてアクセス可能となります。
トラブルシューティング
Webアクセス時、Internal Server Errorとなる
Apacheの「error_log」には以下が表示されている場合、Mercurialのモジュールが正しく読めていない可能性が有ります。「sys.path.insert」の設定を見直してください。
TortoiseHGのPush時、「HTTP Error 500: Internal Server Error」となる
Apacheの「error_log」には以下が表示されている場合、hgrcファイルの所有者がApahce実行ユーザとなっていない可能性が有ります。
Not trusting file /var/lib/hg/test/.hg/hgrc from untrusted user root, group root Premature end of script headers: hgweb.cgi
rootからApache実行ユーザに所有者を変更すればOKです。
更新履歴
- ページ作成 -- 2011年2月3日 (木) 14:59 (JST)