# 4.6 服务器上的 Git - Smart HTTP
# Smart HTTP
我们一般通过 SSH 进行授权访问,通过 git:// 进行无授权访问,但是还有一种协议可以同时实现以上两种方式的访问。
设置 Smart HTTP 一般只需要在服务器上启用一个 Git 自带的名为 git-http-backend
的 CGI 脚本。 该 CGI 脚本将会读取由 git fetch
或 git push
命令向 HTTP URL 发送的请求路径和头部信息, 来判断该客户端是否支持 HTTP 通信(不低于 1.6.6 版本的客户端支持此特性)。
如果 CGI 发现该客户端支持智能(Smart)模式,它将会以智能模式与它进行通信,
否则它将会回落到哑(Dumb)模式下(因此它可以对某些老的客户端实现向下兼容)。
在完成以上简单的安装步骤后, 我们将用 Apache 来作为 CGI 服务器。 如果你没有安装 Apache,你可以在 Linux 环境下执行如下或类似的命令来安装:
$ sudo apt-get install apache2 apache2-utils
$ a2enmod cgi alias env
该操作将会启用 mod_cgi
, mod_alias
和 mod_env
等 Apache 模块, 这些模块都是使该功能正常工作所必须的。
你还需要将 /srv/git
的 Unix 用户组设置为 www-data
,这样 Web 服务器才能读写该仓库, 因为运行 CGI 脚本的 Apache 实例默认会以该用户的权限运行:
+ 
关注公众号,获取验证码 !
验证码: