Как публиковать git-репо через HTTP с помощью nginx?

У меня есть сервер CentOS 5 в domain.fr. Я пытаюсь установить субдомен, чтобы использовать его с git: git.domain.fr

Мои репозитории находятся в / home / git (пример /home/git/repos.git)

Я установил git-http-backend и Nginx. Я установил репозиторий следующим образом:

 cd /home/git/repos.git && git --bare init 

Я установил git.conf (входит в nginx.conf ), как nginx.conf ниже.

Однако на моей клиентской оболочке я получаю фатальную ошибку «репозиторий не найден»: git clone http://git.domain.fr/repos.git

Кто-нибудь знает, что я должен делать? Кажется, это так просто, я расстраиваюсь, потому что я уверен, что это ничего.

 server { listen 80; server_name git.domain.fr; root /home/git; location ~ /(/.*) { include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME /usr/bin/git-http-backend; fastcgi_param GIT_HTTP_EXPORT_ALL true; fastcgi_param GIT_PROJECT_ROOT /home/git; fastcgi_param PATH_INFO $1; fastcgi_pass unix:/var/run/fcgiwrap.socket; } } 

Я нашел этот фрагмент в SO Q & A под названием « Как обслуживать GIT через HTTP через NGINX с помощью пользователя / пароля? ,

 http { ... server { listen 80; server_name git.mydomain.com; location ~ /git(/.*) { # fcgiwrap is set up to listen on this host:port fastcgi_pass localhost:9001; include fastcgi_params; fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; # export all repositories under GIT_PROJECT_ROOT fastcgi_param GIT_HTTP_EXPORT_ALL ""; fastcgi_param GIT_PROJECT_ROOT /srv/git; fastcgi_param PATH_INFO $1; } } } 

Я бы удостоверился, что ваша установка отражает это как можно больше. Кроме того, поскольку я считаю, что Apache обращается к вашей директории /home/git вам нужно позаботиться о том, чтобы этот пользователь мог это сделать. Кроме того, если вы используете SELinux, вам нужно убедиться, что процесс (httpd) имеет соответствующие контексты, добавленные в /home чтобы он мог получить доступ к этому каталогу.

Проконсультируйтесь с файлом журнала /var/log/httpd/error_log для получения более подробной информации о том, как Apache пытается сработать.