Eu configurei todos os componentes necessários para um servidor Git no Nginx usando FastCGI e segui as sugestões combinadas de alguns tutoriais para terminar com essa configuração:
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;
}
}
Usando o cliente window git, no entanto, tentar fazer qualquer coisa no repositório encontrado em https://example.com/git/test.git
resulta no seguinte erro no cliente:
fatal: repository 'https://example.com/git/test.git/' not found
E esse erro no servidor:
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"
O que é estranho, porque na pasta /git/test.git
eu tinha executado o comando git init --bare
anteriormente, então o repositório está definitivamente lá. Eu também tentei chmod 0777 test.git -R
no caso de não ser capaz de ler o repositório ou algo assim, mas isso não teve efeito.
Eu tentei muitas variantes da configuração do mesmo jeito, mas eu simplesmente não entendo o que está errado aqui, então qualquer ajuda seria apreciada.
Tags configuration git nginx fastcgi