Gitweb - 404 - Проекты не найдены

У меня есть дроплет DigitalOcean с Centos 7, но я не вижу свои репозитории на своем дроплете.

У меня есть пользователь git и внутри соответствующей домашней папки у меня есть папка "проекты": /home/git/projects

Внутри этой папки находится тестовое репо, инициализированное с помощью: git init --bare

Вот мой gitweb.conf

$projectroot = "/home/git/projects";
$git_temp = "/tmp";
$home_link = $my_uri || "/";
$home_text = "indextext.html";
$projects_list = $projectroot;

Вот мой файл доступных сайтов:

server {
        listen       80;
        server_name  git.apselom.com;

        access_log /var/log/nginx/git.apselom.com.access_log main;
        error_log /var/log/nginx/git.apselom.com.error_log info;

        location /gitweb.cgi {
                root /var/www/git/;
                include fastcgi_params;
                gzip off;
                fastcgi_param SCRIPT_NAME $uri;
                fastcgi_param GITWEB_CONFIG /etc/gitweb.conf;
                fastcgi_pass  unix:/var/run/fcgiwrap.socket;
        }
    location / {
                root /var/www/git/;
                index gitweb.cgi;
        }
}

С ними я получаю только ошибку: 404 - No projects found.


person César Juárez Díaz    schedule 31.08.2015    source источник
comment
Не связывайте нас с изображением. Вместо этого сообщите нам, что вы получили ошибку 404.   -  person Tim Biegeleisen    schedule 31.08.2015


Ответы (2)


Я подозреваю, что проблема в том, что пользователь, под которым работает ваш веб-сервер, не может получить доступ к вашим репозиториям git.

Странно то, что вы сказали, что используете CentOS 7, но CentOS 7 поставляется с Apache httpd, и то, что у вас есть, похоже на конфигурацию Lighttpd. Пакет gitweb для CentOS поставляется с файлом конфигурации Apache, так что его использование в основном:

  • Установите пакет(ы):

    yum install gitweb httpd
    
  • Создайте своего пользователя git и убедитесь, что пользователь apache сможет получить доступ к вещам:

    # useradd -c 'git user' git
    # usermod -a -G git apache
    # su - git <<EOF
    mkdir projects
    git init --bare projects/project1
    git init --bare projects/project2
    EOF
    # chmod -R g+rwX /home/git
    
  • Отредактируйте /etc/gitweb.conf, чтобы указать на каталог проектов:

    our $projectroot = "/home/git/projects";
    
  • Запустите веб-сервер:

     systemctl enable httpd
     systemctl start httpd
    

И ты готов идти:

$ links http://localhost/git/
[...]
   Project            Description             Owner   Last Change                                  
   project1 Unnamed repository; edit this... git user No commits  summary | shortlog | log |       
                                                                  tree                             
   project2 Unnamed repository; edit this... git user No commits  summary | shortlog | log |       
                                                                  tree                             

Однако ключевой частью является обеспечение того, чтобы ваш веб-сервер имел соответствующие разрешения для вашего каталога /home/git. Если вы не используете Apache, выясните, какого пользователя использует ваш веб-сервер, а затем замените его в приведенном выше.

person larsks    schedule 31.08.2015

Вы можете легко добавить apache в группу git.

usermod -a -G git apache
person Shen Yu    schedule 27.12.2016