I am currently setting up some git repositories on a Ubuntu LTS 14.04 machine with Apache 2.4.7.
This is the apache config:
SetEnv GIT_PROJECT_ROOT /var/www/html/git
SetEnv GIT_HTTP_EXPORT_ALL 1
SetEnv REMOTE_USER $REDIRECT_REMOTE_USER
ScriptAliasMatch \
"(?x)^/git/(.*/(HEAD | \
info/refs | \
objects/(info/[^/]+ | \
[0-9a-f]{2}/[0-9a-f]{38} | \
pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
git-(upload|receive)-pack))$" \
/usr/lib/git-core/git-http-backend
<Location /git/oswald.git>
Options +ExecCGI
AuthType Basic
DAV on
AuthName "Git"
AuthUserFile /etc/apache2/git_paragon_passwd
Require valid-user
Order allow,deny
Allow from all
</Location>
The test repository is under /var/www/html/git/oswald.git
. In the repository I have set the config property
http.receivepack=true
The file git-daemon-export-ok
is present.
If I now try to clone with:
git clone https://server/git/oswald.git
after authentication I get:
fatal: https://server/git/oswald.git/info/refs not valid: is this a git repository?
(git 2.1.0 client, on the server git 1.9.1).
I tried several things, so if I don't use git-http-backend and go via WebDAV I can clone but not push, with git-http-backend I cannot even clone.
If I change the last line of ScriptAliasMatch
from
/usr/lib/git-core/git-http-backend
to
/usr/lib/git-core/git-http-backend/$1
as stated in the man page of git-http-backend, I get
fatal: repository 'https://server/git/oswald.git/' not found
with the error.log from Apache:
AH00130: File does not exist: /usr/lib/git-core/git-http-backend/oswald.git/info/refs
Does anybody have an idea what is wrong? I have already spent a lot of time going through forums, but no suggestions there did help so far.