Configuring hgwebdir.cgi and Apache

hjazz6 hjazz6 at ymail.com
Mon Jan 3 20:33:06 CST 2011


Hi,

I'm using Mercurial 1.7 and Apache 2.2.3. I'm trying to use the hgwebdir.cgi
script to authenticate and serve my repositories, which are located at
/var/lib/mercurial-server/repos.

Although the authentication works, the webpage does not show any of the
repositories.

This is my /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)


This is my /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


This is my /etc/httpd/conf/httpd.conf (parts where changes were made):

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>


Using config = "/var/lib/mercurial-server/repos/" and config =
"/var/hg/hgwebdir.config" in hgwebdir.cgi gives me the empty repository
page. Even though there is NO hgwebdir.config in /var/hg/.

Using config = "/var/www/cgi-hg/hgwebdir.config" gives me a page showing
OSError. Part of the page shows:

/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)
...


I also noticed that whenever I restart my httpd, I get the 2 messages:
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

There is no ScriptAliasMatch in my httpd.conf.

When I point my browser to <IP address>/hg, I'm asked to authenticate, then
I either get the empty repository page, or the Python errors, depending on
which config I use in the hgwebdir.cgi.

If I use "hg serve --webdir-conf /var/www/cgi-hg/hgwebdir.config", all my
repositories show up correctly.

I'm very new to apache, so I'm sure I've gotten something wrong. Please
advise.

Thank you.
-- 
View this message in context: http://mercurial.808500.n3.nabble.com/Configuring-hgwebdir-cgi-and-Apache-tp2189270p2189270.html
Sent from the General mailing list archive at Nabble.com.


More information about the Mercurial mailing list