Smart HTTP是通过激活Git(1.6.6及以后版本)自带的、名为git-http-backend
的cgi
脚本实现的。注意,此脚本只在Apache 2.x上有效。
配置Apache2,开启git-http-backend
脚本:
SetEnv GIT_PROJECT_ROOT /my_repos_root_path
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
现在git clone http://yourhost/repos/xxx.git
应该可以检出你的xxx
代码库了。但是,出于安全考虑,没有授权方式的访问不提供上传(push
)服务,所以暂时还不能push
你的更新到代码库中。
配置授权,开启push
服务。这里以Basic
授权为例:
<Location /repos/>
AuthType Basic
AuthName "Git Access"
AuthUserFile /opt/access/git.passwd
Require valid-user
</Location>
当然,你也可以配置成匿名clone
,授权push
的工作方式,这里就不举例了。