Сервер Nginx / git / fastcgi не работает

Я настроил все необходимые компоненты для сервера Git на Nginx с помощью FastCGI и следовал объединенным предложениям нескольких руководств, чтобы получить такую ​​конфигурацию:

server {
  listen 80;
  listen [::]:80;

  server_name example.com www.example.com;

  return 301 https://example.com$request_uri;
}

server {
  listen 443 ssl;
  listen [::]:443 ssl;

  root /path/to/site;
  index index.html;

  server_name example.com www.example.com;

  # ... Some ssl stuff here ...

  location ~ /git(/.*) {
    auth_basic "Access denied";
    auth_basic_user_file /path/to/auth;

    client_max_body_size 0;

    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 /path/to/site/git;
    fastcgi_param PATH_INFO $1;
    fastcgi_param REMOTE_USER $remote_user;

    fastcgi_pass unix:/var/run/fcgiwrap.socket;
  }
}

Однако, используя клиент окна git, попытка сделать что-либо с репозиторием, найденным по адресу https://example.com/git/test.git , приводит к следующей ошибке на клиенте:

fatal: repository 'https://example.com/git/test.git/' not found

И эта ошибка на сервере:

2016/01/07 16:59:05 [error] 5155#0: *579 FastCGI sent in stderr: "Not a git repository: '/path/to/site/git/test.git'" while reading response header from upstream, client: xxx.xxx.xxx.xxx, server: example.com, request: "GET /git/test.git/info/refs?service=git-receive-pack HTTP/1.1", upstream: "fastcgi://unix:/var/run/fcgiwrap.socket:", host: "example.com"

Это странно, потому что в папке /git/test.git я ранее запускал команду git init --bare , так что репозиторий определенно есть. Я также попробовал chmod 0777 test.git -R на случай, если он не смог прочитать репозиторий или что-то в этом роде, но это не дало результата.

Я пробовал много вариантов такой же конфигурации, но я просто не понимаю, что здесь происходит не так, поэтому любая помощь будет принята с благодарностью.

2
задан 8 January 2016 в 00:14
1 ответ

Попробуйте запустить это в папке проекта git. (/path/to/site/git/test.git)

git --bare init
git update-server-info

Это должно подготовить каталог git и создать необходимые файлы. Вы просто пропускаете второй шаг, я думаю.

0
ответ дан 4 September 2020 в 18:13

Теги

Похожие вопросы