私はMercurial 1.7とApache 2.2.3を使用しています。私は/ var/lib/mercurial-server/reposにあるリポジトリを認証して提供するためにhgwebdir.cgiスクリプトを使用しようとしています。MercurialとApacheの使用
認証は機能しますが、Webページにはリポジトリが表示されません。
これは私の/var/www/cgi-hg/hgwebdir.cgiです:
config = "/var/lib/mercurial-server/repos/"
import sys; sys.path.insert(0, "/usr/lib64/python2.4/")
import cgitb; cgitb.enable()
from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb import hgweb, wsgicgi
application = hgweb(config)
wsgicgi.launch(application)
これは私の/var/www/cgi-hg/hgwebdir.configです:
[collections]
/var/lib/mercurial-server/repos=/var/lib/mercurial-server/repos
[web]
allow_push = *
style = gitweb
push_ssl = False
= "の/ var/libに/ Mercurialのサーバ/レポ/" と設定=「の/ varの設定を使用して
DocumentRoot "/var/www/cgi-hg"
<Directory />
Options ExecCGI FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "/var/www/cgi-hg">
Options ExecCGI Indexes FollowSymLinks
AllowOverride None
</Directory>
DirectoryIndes index.html index.html.var hgwebdir.cgi
ScriptAlias /hg "/var/www/cgi-hg/hgwebdir.cgi"
<Location /hg>
AuthType Basic
AuthName "Login Required"
AuthUserFile /usr/local/etc/users
Require valid-user
</Location>
:これは私のある/etc/httpd/conf/httpd.conf(変更が行われた部品)であります/ hg/hgwebdir hgwebdir.cgiの ".config"は私に空のリポジトリページを与えます。/var/hg /にはhgwebdir.configはありません。
config = "/var/www/cgi-hg/hgwebdir.config"を使用すると、OSErrorを示すページが表示されます。ページの一部を示しています
Starting httpd: [date time] [warn] The ScriptAlias directive in /etc/httpd/conf/httpd.conf at line 570 will probably never match because it overlaps an earlier ScriptAliasMatch.
httpd: Could not reliably determine the server's fully qualified domain name, using <IP address> for ServerName
私のhttpd.confにはScriptAliasMatchはありません。
/var/www/cgi-hg/hgwebdir.cgi
(highlighted) 22 application = hgweb(config)
application undefined, hgweb = <function hgweb>, config = '/var/www/cgi-hg/hgwebdir.config'
/usr/lib64/python2.4/site-packages/mercurial/hgweb/__init__.py in hgweb(config='/var/www/cgi-hg/hgwebdir.config', name=None, baseui=None)
(highlighted) 26 return hgwebdir_mod.hgwebdir(config, baseui=baseui)
...
また、私は私のhttpdを再起動するたびに、私は2つのメッセージを得ることに気づきました。
ブラウザで/ hgを指定すると、hgwebdir.cgiでどの設定を使用しているのかによって認証が求められ、空のリポジトリページまたはPythonエラーが表示されます。
「hg serve -webdir-conf /var/www/cgi-hg/hgwebdir.config」を使用すると、すべてのリポジトリが正しく表示されます。
私は非常にApacheに新しく、私は何か間違っていると確信しています。お知らせ下さい。
ありがとうございます。
私は設定を "/var/www/cgi-hg/hgwebdir.config"に変更しましたが、上記のOSErrorが私に渡されました。 – Rayne
あなたはhgwebdir.cgiをどこで手に入れましたか?あなたはMercurial 1.7を使っていますが、hgwebdir.cgiはバージョン1.6でhgweb.cgiに改名されました。最新のものはこちら:http://mercurial.selenic.com/hg/hg/file/tip/hgweb.cgi実際の設定ファイルを指すconfig引数は、複数のreposでは間違いなく正しいです。それを働かせれば、あなたはあなたのところにいるでしょう。あなたのウェブサーバーのユーザーがすべての関連ファイルを読むことができると確信していますか? PYTHON_PATHに早く登場している古い水銀をインストールしたことも可能ですか? –
1.4.3よりもMercurial 1.7をインストールしました。私のPYTHON_PATHを確認するには? – Rayne