У меня есть Debian с запущенным Nginx на git.example.com
который я использую для хранения git-репозиториев.
Я могу получить / нажать / клонировать через SSH, запустив git clone keeyan@example.com/git/my_repo
. (git
- это символическая ссылка в моем домашнем каталоге, которая указывает на /mnt/primary_storage/git
)
Однако, когда я клонирую / вытягиваю с HTTP(S), я получаю следующую ошибку:
fatal: http://git.example.com/my_repo.git/info/refs not valid: is this a git repository?
Я получаю эту ошибку независимо от того, клонирую ли я реальный репозиторий
Соответствующая часть конфигурации 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;
}
}
Раздражает то, что у меня была точно такая же установка, запущенная на другом сервере с Ubuntu, и она работала нормально. Так что я не знаю, что вызывает это. Помимо этой одной проблемы все на сервере работает нормально.
Да, есть несколько подобных вопросов на сайтах StackExchange, но ни один из них не помогает мне. Например, некоторые из них имеют дело с Github, и они не создали хранилище первыми. Другие неправильно указали адрес Git. Другие говорили, что я должен запустить git config --global http.proxy
который не помог.
Также я трижды проверил все права доступа к папке / файлу, и все они доступны для чтения и записи от пользователя Nginx.