我正在尝试使用智能 HTTP 在我的一台服务器上安装我自己的 Git 存储库。
它可以在没有 suexec 的虚拟服务器上运行,但不能在启用了 suexec 的生产服务器上运行。当我尝试克隆或推送时,它说:
致命:找不到存储库“ http://domain.tld/git/project/ ”
Apache 配置如下:
<VirtualHost *:80>
Options -Indexes +ExecCGI
ServerAdmin user@domain.tld
DocumentRoot /var/www/domain.tld
ServerName domain.tld
Alias /fcgi-bin/ /var/www/domain.tld/fcgi-bin/
SuexecUserGroup domainuser domainuser
########## GIT ##########
SetEnv GIT_PROJECT_ROOT /var/www/git/git_domain
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER
ScriptAlias /git/ /var/www/git/git_domain/git-http-backend/
Alias /git /var/www/git/git_domain
<Directory /usr/lib/git-core>
Options +ExecCGI +SymLinksIfOwnerMatch
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/git/git_domain>
Options -Indexes -SymLinksIfOwnerMatch
AllowOverride All
Require all granted
</Directory>
########## PROJECT DIRS HTPASS ##########
<LocationMatch "^/git/project1/.*$">
# DAV on
AuthType Basic
AuthName "project1"
AuthUserFile /var/www/git/gitpass/domain/project1
Require valid-user
</LocationMatch>
########## /PROJECT DIRS HTPASS ##########
########## /GIT ##########
如果我禁用
ScriptAlias /git/ /var/www/git/git_domain/git-http-backend/
我可以克隆,但可以推送,因为在这种情况下它可以与 DAV 一起使用。
我想我将所有文件的所有者和权限更改为正确的值(域用户,755),并且 suexec 不会抱怨其日志中的任何内容。
谁能告诉我我哪里做错了?
先感谢您。