Eu tenho um Debian rodando o Nginx em git.example.com
que eu uso para armazenar repositórios git.
Eu posso puxar / empurrar / clonar via SSH executando git clone [email protected]/git/my_repo
. ( git
é um link simbólico no meu diretório pessoal que aponta para /mnt/primary_storage/git
)
No entanto, quando clonei / puxo com HTTP (S), recebo o seguinte erro:
fatal: http://git.example.com/my_repo.git/info/refs not valid: is this a git repository?
Eu recebo este erro, independentemente de eu estar clonando um repositório real
A parte relevante da configuração do Nginx é:
server {
listen 80;
server_name git.example.com;
root /mnt/primary_storage/git;
location ~ (/.*) {
auth_basic "Login";
auth_basic_user_file /mnt/primary_storage/.htpasswd;
include fastcgi_params;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
fastcgi_param GIT_HTTP_EXPORT_ALL "";
fastcgi_param GIT_PROJECT_ROOT /mnt/primary_storage/git;
fastcgi_param PATH_INFO $1;
fastcgi_pass localhost:9000;
}
}
A coisa chata é que eu tive exatamente a mesma configuração rodando em outro servidor que tinha Ubuntu e funcionava bem. Então eu não sei o que está causando isso. Além deste problema, tudo no servidor está funcionando bem.
Sim, há algumas perguntas semelhantes como esta nos sites do StackExchange, mas nenhuma delas está me ajudando. Por exemplo, alguns deles estão lidando com o Github e eles não configuraram o repositório primeiro. Outros tinham o endereço do Git errado. E outros disseram que eu deveria executar git config --global http.proxy
, o que não ajudou.
Além disso, verifiquei todas as permissões de pasta / arquivo e elas são todas legíveis e graváveis pelo usuário do Nginx.