![使用 apache2 的智能 HTTP git 后端](https://linux22.com/image/869001/%E4%BD%BF%E7%94%A8%20apache2%20%E7%9A%84%E6%99%BA%E8%83%BD%20HTTP%20git%20%E5%90%8E%E7%AB%AF.png)
我正在尝试在我的 Ubuntu 服务器上使用 git 的智能 HTTP 功能。我已阅读了智能 HTTP 和 git-http-backend 的文档以及 apache 的文档;但我无论如何也想不出为什么它不起作用。我有一个通过 apache 代理的运行良好的 Sonar 服务器,但我无法让它工作。也就是说,我一直收到 403 错误。
/etc/apache2/sites-available/git.conf
SetEnv GIT_PROJECT_ROOT /opt/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
<Directory "/opt/git">
Order allow,deny
Allow from all
Require all granted
</Directory>
<LocationMatch "^/git/.*/git-receive-pack$">
AuthType Basic
AuthName "Git Access"
Order allow,deny
Allow from all
AuthUserFile /opt/git/.htpasswd
Require valid-user
</LocationMatch>
我认为这可能是一个权限问题,因为www-data
无权访问该/opt/git
文件夹,因此我创建了一个新组,git-access
并将我自己和该组都添加到该组,然后更改了该组www-data
的权限,并拥有该组和所有者的权限。/opt/git
www-data
rw
zymus@ubuntu:/etc/apache2/sites-available$ groups www-data
www-data : www-data git-access
zymus@ubuntu:/etc/apache2/sites-available$ ls -la /opt/git
total 56
drwxrwxr-x 13 git git-access 4096 Mar 4 19:37 .
drwxr-xr-x 5 root root 4096 Jan 23 15:44 ..
-rw-rw-r-- 1 git git-access 50 Jan 26 13:34 .htpasswd
drwxrwxr-- 7 git git-access 4096 Mar 4 19:40 pokemod-game-api.git
drwxrwxr-- 7 git git-access 4096 Nov 25 23:18 pokenet-cms.git
drwxrwxr-- 7 git git-access 4096 Nov 25 23:20 pokenet-file-server.git
drwxrwxr-- 3 git git-access 4096 Jan 11 01:05 pokenet-game-client.git
drwxrwxr-- 7 git git-access 4096 Jan 16 21:57 pokenet-game-core.git
drwxrwxr-- 7 git git-access 4096 Nov 22 19:25 pokenet-game-server.git
drwxrwxr-- 7 git git-access 4096 Nov 25 23:26 pokenet-launcher.git
drwxrwxr-- 7 git git-access 4096 Dec 26 17:44 pokenet-login-client.git
drwxrwxr-- 7 git git-access 4096 Nov 22 19:24 pokenet-login-server.git
drwxrwxr-- 7 git git-access 4096 Dec 4 15:24 pokenet-login-token.git
drwxrwxr-- 7 git git-access 4096 Nov 23 00:03 zephyrion-core.git
zymus@ubuntu:/etc/apache2/sites-available$ groups zymus
zymus : zymus adm cdrom sudo dip plugdev lpadmin sambashare git git-access
zymus@ubuntu:/etc/apache2/sites-available$ groups www-data
www-data : www-data git-access
zymus@ubuntu:/etc/apache2/sites-available$ groups git
git : git git-access
zymus@ubuntu:/etc/apache2/sites-available$ cat /opt/git/.htpasswd
zymus:Git Access:*