Git - 智能 HTTP
我们现在通过 SSH 进行了经过身份验证的访问,并通过 进行了未经身份验证的访问,但也有一个协议可以同时执行这两项操作。设置智能HTTP基本上只是启用一个CGI脚本,该脚本随服务器上调用的Git一起提供。此 CGI 将读取 由 或 发送到 HTTP URL 的路径和标头,并确定客户端是否可以通过 HTTP 进行通信(自版本 1.6.6 以来,对于任何客户端都是如此)。如果CGI看到客户端是智能的,它将与它进行智能通信;否则它将回退到哑行为(因此它向后兼容与旧客户端的读取)
让我们来看看一个非常基本的设置。我们将使用Apache作为CGI服务器进行设置。如果您没有Apache设置,则可以在Linux设备上使用如下内容进行设置:
$ sudo apt-get install apache2 apache2-utils
$ a2enmod cgi alias env
这也使 、 和 模块成为可能,这些都是正常运行所必需的。mod_cgimod_aliasmod_env
您还需要将目录的 Unix 用户组设置为,以便您的 Web 服务器可以读取和写入访问存储库,因为运行 CGI 脚本的 Apache 实例将(默认情况下)以该用户身份运行:/srv/gitw