Моя настройка:
ОС: debian
git v 1.7.10
apache (с поддержкой режима suexec) с поддержкой git -http-backend и ldap для git repos wchich работает для операций клонирования, но не работает для push и что проблема. Я использую https как протокол связи для моего сервера git.
Здесь моя конфигурация:
Конфигурация VirtualHost:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
DocumentRoot /git/myrepos
<Directory "/git/myrepos">
Allow from All
Options +ExecCGI
AllowOverride All
</Directory>
ScriptAlias /git /git/myrepos/bin/suexec-wrapper.sh
SSLEngine on
SSLCertificateFile /etc/ssl/git.crt
SSLCertificateKeyFile /etc/ssl/git.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
/git/myrepos/bin/suexec-wrapper.sh:
#!/bin/bash
PATH_INFO=$SCRIPT_URL
GIT_PROJECT_ROOT=/git/myrepos
REMOTE_USER=$REDIRECT_REMOTE_USER
export GIT_HTTP_EXPORT_ALL=true
/usr/lib/git-core/git-http-backend
Клонирование репозиториев работает так, как должно (например, git clone https://192.168.0.1/repo1.git
): оно принимает учетные данные для пользователя ldap и клонирует репо.
И при нажатии репо (например, git нажмите начальный мастер): он запрашивает учетные данные, принимает их и затем выдает ошибку:
error: Cannot access URL https://192.168.0.1/repo1.git/, return code 22
fatal: git-http-push failed
При запуске push в режиме verbose (GIT_CURL_VERBOSE=1 git push origin master
) он запрашивает учетные данные, принимает их и (хвост вывода):
* STATE: DO => DO_DONE handle 0x1cdd270; (connection #0)
* STATE: DO_DONE => WAITPERFORM handle 0x1cdd270; (connection #0)
* STATE: WAITPERFORM => PERFORM handle 0x1cdd270; (connection #0)
* additional stuff not fine transfer.c:1037: 0 0
* The requested URL returned error: 401
* Closing connection #0
* Expire cleared
error: Cannot access URL https://192.168.0.1/repo1.git/, return code 22
fatal: git-http-push failed
Я настраиваю apache git -http-backend (с оберткой script?) правильно?
И что может вызвать проблему с нажатием кнопки?
Как отладить его более подробно?
Любые предложения очень ценятся!
С уважением