@DSRussell
Программист

Как настроить работу git+nginx через HTTP?

Было на apache2 и полностью все работало Clone/Pull и Push.
Файл /etc/apache2/conf.d/git :
SetEnv GIT_PROJECT_ROOT /srv/git/repos/
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/

Alias /git /srv/git/repos

<Directory /usr/lib/git-core>
  Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  AllowOverride None
  Order allow,deny
  Allow from all
  AuthType Basic
  AuthName "Git Server"
  Require valid-user
  AuthUserFile /etc/apache2/git.htpasswd
</Directory>


Стало на nginx и работает только Clone/Pull, при Push ошибка 403, что я делаю не так?
location ~ /git(/.*) {
            access_log /srv/git/log/acees.log;
            error_log /srv/git/log/error.log;
            #auth_basic "Restricted";
            #auth_basic_user_file /etc/nginx/git.htpasswd;
            fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
            include fastcgi_params;
            fastcgi_param GIT_HTTP_EXPORT_ALL "";
            fastcgi_param GIT_PROJECT_ROOT /srv/git/repos;
            fastcgi_param PATH_INFO $1;
            fastcgi_param REMOTE_USER $remote_user;
            fastcgi_pass unix:/var/run/fcgiwrap.socket;
        }


Помогите написать правильный конфиг под nginx.
  • Вопрос задан
  • 4356 просмотров
Решения вопроса 1
nginx должен быть собран с модулями dav dav-ext

ну и добавить в location ~ /git(/.*) {

dav_methods PUT DELETE MKCOL COPY MOVE;
 dav_ext_methods PROPFIND OPTIONS;


взято тут
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@portfelio
Понимаю, что вопрос не по теме, однако: а зачем такие извращения с http-протоколом? Почему бы не использовать ssh?
Ответ написан
@Drummer_hard
В error.log, как URL запросов на /git/ выглядят? можете здесь написать?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы