Невозможно протолкнуть каталог через Smart-http
Я занимаюсь этим уже два дня подряд, и я разочаровываюсь в поиске решения самостоятельно. Я пытаюсь настроить Redmine на сервере - эта часть прошла хорошо. Я также пытаюсь установить git-репозиторий, но, несмотря на то, что я смог клонировать и извлекать отлично через SSH, я с трудом делаю то же самое по HTTP.
Прежде всего, вот подробная ошибка git push:
================================================== ==============
$ GIT_CURL_VERBOSE = 1 толчок git http://192.168.0.13/gitweb/Project master * Не удалось найти хост 192.168.0.13 в файле _netrc; использование значений по умолчанию * О подключении () к порту 192.168.0.13 80 (#0) * Попытка 192.168.0.13... * 0x20ab4f0 находится на голове отправляющего канала! * Подключено к 192.168.0.13 (192.168.0.13) порту 80 (# 0)
GET / gitweb/Project/info/refs? Service=git-receive-pack HTTP/1.1 Пользователь-агент: git/1.7.4.3282.g844cb Хост: 192.168.0.13 Принять: / Pragma: no-cache
- Запрошенный URL вернул ошибку: 403
- Срок действия очищен
- Закрытие соединения № 0
- Не удалось найти хост 192.168.0.13 в файле _netrc; используя значения по умолчанию
- О подключении () к порту 192.168.0.13 80 (# 0)
- Попытка 192.168.0.13... * 0x20ab4f0 находится в голове отправляющей трубы!
Подключен к 192.168.0.13 (192.168.0.13) порту 80 (# 0)
GET / gitweb/Project/info/refs HTTP / 1.1 User-Agent: git/1.7.4.3282.g844cb Хост: 192.168.0.13 Принять: / Pragma: no-cache
Запрошенный URL вернул ошибку: 403
- Ошибка закрытия соединения № 0: запрошенный URL-адрес вернул ошибку: 403 при доступе к http://192.168.0.13// gitweb/Project/info/refs
фатальный: HTTP-запрос не выполнен
================================================== ==============
Так что, очевидно, есть некоторые неправильно настроенные права, хотя я временно изменил свою папку репозитория на 777.
Я думаю, вы также будете заинтересованы в конфигурации Apache:
================================================== ==============
ServerAdmin для веб-мастеров @ localhost
[...snip...]
PerlLoadModule Apache::Redmine
SetEnv GIT_PROJECT_ROOT /var/cache/git/
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
<Location "/git/">
DAV on
AuthType Basic
AuthName "Git Repository"
Require valid-user
PerlAccessHandler Apache::Authn::Redmine::access_handler
PerlAuthenHandler Apache::Authn::Redmine::authen_handler
RedmineDSN "DBI:mysql:database=redmine;host=localhost"
RedmineDbUser "redmine"
RedmineDbPass "XXXXXXX"
RedmineGitSmartHttp yes
</Location>
Alias /gitweb/ "/var/cache/git/public/"
<Location "/gitweb/">
Order deny,allow
Deny from all
<Limit GET PROPFIND OPTIONS REPORT>
Options Indexes FollowSymLinks MultiViews
Allow from 127.0.0.1
Allow from localhost
</Limit>
</Location>
================================================== ==============
Так что, если кто-то будет так любезен, чтобы дать мне подсказку о том, что делать, я был бы очень благодарен. Заранее спасибо!
2 ответа
Хорошо, проблема решена:) Это учебное пособие, которому нужно следовать к письму:
http://www.redmine.org/projects/redmine/wiki/HowTo_configure_Redmine_for_advanced_git_integration
В моем случае финальная запись выглядит так:
PerlLoadModule Apache::Redmine
Alias /git/ "/var/cache/git/public/"
<Directory "/git/">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Location "/git/">
DAV on
AuthType Basic
AuthName "My Git Repository"
Require valid-user
PerlAccessHandler Apache::Authn::Redmine::access_handler
PerlAuthenHandler Apache::Authn::Redmine::authen_handler
RedmineDSN "DBI:mysql:database=redmine;host=localhost"
RedmineDbUser "redmine"
RedmineDbPass "XXXXXXX"
RedmineGitSmartHttp yes
</Location>
Вы, кажется, не используете никакой аутентификации. По умолчанию git разрешает отправку через smart-http только при использовании аутентификации.
Вы должны иметь возможность либо добавить имя пользователя к URL-адресу, который вы используете, и вам будет предложено ввести пароль, либо вы можете установить имя пользователя и пароль в файле _netrc.