使用 apache2 的智能 HTTP git 后端

使用 apache2 的智能 HTTP git 后端

我正在尝试在我的 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/gitwww-datarw

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:*

相关内容