18b*_*tes 4 http authentication mercurial
你能指点一下通过 HTTP/HTTPS 设置 Mercurial 吗?我正在设置一个开发服务器 (Debian),我想在其中创建一个 mercurial 存储库并将更改推送到服务器。我需要进行身份验证以防止任何不必要的访问。
提前致谢。
我认为 Apache 是共享 hg 存储库的好方法。hgweb.wsgi 脚本不仅提供了运行多个存储库的可能性,而且允许开发人员通过来自权威源的路径或修订方便地交叉引用项目源代码。
以下过程将提供一种简单的方法来发布存储库,并将其通过 https Web 连接提供给经过身份验证的用户。
首先,我建议在没有本地文件目录的情况下克隆你的 repo。
hg clone -U <myproject> <myproject_to_serve>
Run Code Online (Sandbox Code Playgroud)
接下来(使用非常简单的 WSGI 配置),执行以下操作:
将您的 repo 移动到一个方便的地方来提供它:
mv <myproject_to_serve> /var/www/hg/<myproject_to_serve>
Run Code Online (Sandbox Code Playgroud)
确保 web 服务器用户可以读取/写入 repo:
chown -R www-data:www-data /var/www/hg/<myproject_to_serve>
Run Code Online (Sandbox Code Playgroud)
现在为项目用户设置读/写权限,并为您服务器主页上的项目列表提供一些信息:
vim /var/www/hg/myproject_to_serve>/.hg/hgrc
[web]
description = 'This is my new web-enabled project <myproject>'
contact = support@global.com
# consider limiting push usage to only a subset of users
allow_push = *
Run Code Online (Sandbox Code Playgroud)
现在设置 WSGI
vim /var/www/hg/hgweb.config
[paths]
/myproj = /var/www/hg/my_project_to_serve
Run Code Online (Sandbox Code Playgroud)
现在设置apache
<VirtualHost *:443>
ServerName hg.mydomain.net
ServerAdmin webmaster@mydomain.net
ErrorLog /var/www/mydomain/logs/hg_error_log
CustomLog /var/www/mydomain/logs/hg_access_log common
SSLEngine on
SSLCertificateFile /etc/ssl/mydomain_net.crt
SSLCertificateKeyFile /etc/ssl/mydomain_net.key
DocumentRoot "/var/www/hg/"
<Location "/hg">
SetHandler None
</Location>
# path to provided hgweb.wsgi script
WSGIScriptAlias / /var/www/hg/scripts/hgweb.wsgi
<Location / >
AuthType Digest
AuthName "MySoftware"
AuthUserFile /home/software/software_web_permissions
Require valid-user
</Location>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
以上要求你具备:
Surfing tohg.mydomain.net将向您显示一个格式良好的可用项目列表。hg.mydomain.net/myproj成功验证后,将根据/var/www/hg/<myproject_to_serve>repo向您显示项目的当前状态。
| 归档时间: |
|
| 查看次数: |
2041 次 |
| 最近记录: |