按照
[转载]Mercurial(HG)版本控制服务用户名验证 的内容配置Apache服务器中Mercurial的用户名验证,遇到了一些问题,现总结如下:
1. 对于访问权限,除了文中的内容外,还要有order和allow from all的设置,即下面的红字:
-
Order Allow,Deny
-
Allow from all
-
AuthType Basic
-
AuthName "Mercurial repositories"
-
AuthUserFile "D:/zend/apache2/hgusers/hgusers.htpasswd"
-
- Require valid-user
-
-
2. 除了可以写在Location段以外,也可以写在Directory段:
- ScriptAlias /hg "C:/xampp/htdocs/hgweb/hgweb.cgi"
-
-
C:/xampp/htdocs/hgweb">
-
Order Allow,Deny
-
Allow from all
-
AuthType Basic
-
AuthName "Mercurial repositories"
-
AuthUserFile "D:/zend/apache2/hgusers/hgusers.htpasswd"
-
- Require valid-user
-
3. 当将Require valid-user写在Limit段内时,在浏览器中直接访问是不会提示输入用户名密码的,因为这种配置下,只有当要求推、拉、写等动作时,才会要求用户权限,如果想访问时即要求提供用户名密码,应如下配置:
- ScriptAlias /hg "C:/xampp/htdocs/hgweb/hgweb.cgi"
-
<Directory "C:/xampp/htdocs/hgweb">
-
Order Allow,Deny
-
Allow from all
-
AuthType Basic
-
AuthName "Mercurial repositories"
-
AuthUserFile "D:/zend/apache2/hgusers/hgusers.htpasswd"
-
Require valid-user
-
</Directory>
4. 对于hgweb.config的WEB段,常用的有如下几个配置项:
- [web]
-
allowpull = false
-
allow-push = *
- deny-push = lisi
-
allow-read = *
-
deny-read = zhangsan
其中
allowpull的参数为ture和false,用于指定用户是否可以克隆库,默认为true。
allow-read和deny-read也用于用户克隆和拉(pull)库的权限指定,参数是*或者用户名列表,列表用逗号间隔,如用户名中包含逗号,需要把用户名用双引号括起来。
两者的关系是deny-read高于allow-read,即可以用allow-read = *来指定所有人都可以读取库,再用deny-read = "Tom, Li", zhangsan,来指定Tom, Li和zhangsan不能读取代码。
allow-push和deny-push也类似,是用于指定推(push)库的权限的。
push_ssl的参数为true和false,用于指定是通过http还是https协议推访问。默认为true。如果这时通过http进行推送,则会显示包含"Required: SSL"的错误提示。
阅读(1590) | 评论(0) | 转发(0) |