AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
## 4.6 Smart HTTP 一般通过 SSH 进行授权访问,通过 Git 协议进行无授权访问,而 Smart HTTP 可以同时实现以上两种方式的访问。 设置 Smart HTTP 一般只需要在服务器上启用一个 Git 自带的名为`git-http-backend`的 CGI 脚本。 该 CGI 脚本将会读取由`git fetch`或`git push`命令向 HTTP URL 发送的请求路径和头部信息,来判断该客户端是否支持 HTTP 通信。如果 CGI 发现该客户端支持智能(Smart)模式,它将会以智能模式与它进行通信,否则它将会回落到哑(Dumb)模式下。 **安装 Apache** ``` $ sudo apt-get install apache2 apache2-utils $ a2enmod cgi alias env ``` **添加配置** 向 Apache 配置文件添加一些内容来让`git-http-backend`作为 Web 服务器对`/git`路径请求的处理器。 ``` SetEnv GIT_PROJECT_ROOT /opt/git SetEnv GIT_HTTP_EXPORT_ALL ScriptAlias /git/ /usr/lib/git-core/git-http-backend/ ``` 如果留空`GIT_HTTP_EXPORT_ALL`这个环境变量,Git 将只对无授权客户端提供带`git-daemon-export-ok`文件的版本库。 让 Apache 接受通过该路径的请求,添加如下的内容至 Apache 配置文件: ``` <Directory "/usr/lib/git-core*"> Options ExecCGI Indexes Order allow,deny Allow from all Require all granted </Directory> ``` 想实现写操作授权验证,使用如下的未授权屏蔽配置: ``` <LocationMatch "^/git/.*/git-receive-pack$"> AuthType Basic AuthName "Git Access" AuthUserFile /opt/git/.htpasswd Require valid-user </LocationMatch> ``` 这需要创建一个包含所有合法用户密码的`.htaccess`文件。 ``` $ htdigest -c /opt/git/.htpasswd "Git Access" schacon ```