2013-01-04 16 views
5

Próbuję skonfigurować gitlistę na systemie CentOS Linux (z gitolite w przypadku, który ma znaczenie - rozluźniłem uprawnienia do katalogów repo zarządzanych przez gitolite).gitlist nie może uzyskać niczego poza listą repozytoriów

Wyciągnąłem z targów gitlist.org wersję 0.3 tarballa.

Moja config.ini wygląda następująco:

client = '/usr/bin/git' ; Your git executable path 
repositories = '/home/gitolite/repositories/' ; Path to your repositories 

[app] 
debug = true  
; I don't know if baseurl is still needed..seems like my results are the same either way 
baseurl = 'http://sub.example.com.com/gitlist' ; Base URL of the application 

dyrektywy wirtualnego hosta w httpd.conf:

<VirtualHost *:80> 
    DocumentRoot /var/www/html 
    ServerName sub.example.com 
    <Directory "/var/www/html"> 
    AllowOverride All 
    Options -Indexes 
    </Directory> 
</VirtualHost> 

.htaccess:

<IfModule mod_rewrite.c> 
    Options -MultiViews 

    RewriteEngine On 
    RewriteBase /var/www/html/gitlist/ 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php [L,NC] 

    AuthName "Git List" 
    AuthType Basic 
    AuthUserFile /var/www/.gitlistpwds 
    Require valid-user 

</IfModule> 
<Files config.ini> 
    order allow,deny 
    deny from all 
</Files> 

Przy tej konfiguracji będzie http://sub.example.com/gitlist powoduje wyświetlenie komunikatu o błędzie przeglądarki, że plik /index.php nie istnieje (tzn. próbuje przejść to /var/www/html/index.php)

W tym przypadku, jeśli przejdę do http://sub.example.com/gitlist/index.php, lista repozytorium (podobno) poprawnie się wyświetli. Kiedy klikam jeden z repo, coś idzie nie tak kiedy próbuje wykonać, git. I otrzymujemy:

Whoops, looks like something went wrong. 

1/1 RuntimeException: Unknown option: -c 
(std git usage message omitted) 

Jeśli usunąć regułę przepisywania z .htaccess, jestem w stanie uzyskać dostęp do strony indeksu, albo określając index.php czy nie. Ale w takim razie po kliknięciu na repo, próbuje znaleźć repo pod katalogiem gitlist:

The requested URL /gitlist/testing.git/ was not found on this server. 

Czy ktoś mógłby pomóc uporządkować ten bałagan?

+0

Dlaczego przepisać? Umieść swój webap gitlist gdziekolwiek chcesz, zadeklaruj alias i katalog, i powinno wystarczyć (jak na https://github.com/VonC/compileEverything/blob/master/apache/env.conf.tpl#L41-L93) – VonC

+0

Przepisanie jest częścią aplikacji (zawiera plik .htaccess, który go zawiera). Nie wiem, dlaczego tam jest. Próbowałem tego bez, jak już wskazałem, i nadal miałem problemy. Czy mówisz, że jeśli przeniesię go poza mój katalog internetowy, problem zniknie? –

+0

Wskazuję tylko na inną technikę odwoływania się do webappa bez konieczności przepisywania. Będę musiał przetestować gitlistę i sprawdzić, czy działa w ten sposób. – VonC

Odpowiedz

1

W końcu udało mi się przetestować listę gitar.

usunąłem .htaccess i utrzymane następujące config w httpd.conf:

# GitList on 28473 
<IfModule !php5_module> 
    LoadModule php5_module modules/libphp5.so 
</IfModule> 
Listen 28473 
<VirtualHost aserver.prod.fr.company:28473> 
    ServerName aserver.prod.fr.company 
    ServerAlias aserver 
    SSLCertificateFile "/home/vonc/apache/crt" 
    SSLCertificateKeyFile "/home/vonc/apache/key" 
    SSLEngine on 
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL 
    SetEnv GIT_HTTP_BACKEND "/home/vonc/usr/local/apps/git/libexec/git-core/git-http-backend" 
    DocumentRoot /home/vonc/gitlist/github 
    Alias /gitlist /home/vonc/gitlist/github 
    <FilesMatch "\.(cgi|shtml|phtml|php)$"> 
     SSLOptions +StdEnvVars 
    </FilesMatch> 
    <FilesMatch ".php$"> 
     SetHandler application/x-httpd-php 
    </FilesMatch> 
    <FilesMatch ".phps$"> 
     SetHandler application/x-httpd-php-source 
    </FilesMatch> 
    <Directory /home/vonc/gitlist/github> 
     SSLOptions +StdEnvVars 
     Options ExecCGI +Indexes +FollowSymLinks 
     AllowOverride All 
     order allow,deny 
     Allow from all 
     Options -MultiViews 

     DirectoryIndex index.php 
     RewriteEngine On 

     RewriteBase /home/vonc/gitlist/github/ 
     RewriteCond %{REQUEST_FILENAME} !-f 
     RewriteRule ^(.*)$ gitlist/index.php/$1 [L,NC] 

    </Directory> 

    # RewriteLog "/home/vonc/gitlist/logs/apache_gitlist_rewrite_log" 
    # RewriteLogLevel 3 
    CustomLog "/home/vonc/gitlist/logs/apache_gitlist_ssl_request_log" \ 
       "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" 
    ErrorLog "/home/vonc/gitlist/logs/apache_gitlist_error_log" 
    TransferLog "/home/vonc/gitlist/logs/apache_gitlist_access_log" 
    LogLevel info 
</VirtualHost> 

(Od my own commit i this setup)

zauważyć, że:

  • to do biegania gitlist w swoim własnym podkatalogu: https://myServer/gitlist (nie tylko https://myserver)
  • Nie wyświetli żadnych plików w podkatalogu repozytorium git: zobacz Issue 250, łatka jest w toku
+0

VonC dzięki za twoje wysiłki. Mój główny problem był w rzeczywistości skupiony wokół nieznanego błędu opcji, o którym wspomniałem, który naprawiłem aktualizując mój plik wykonywalny git. Nadal mam błąd, gdy próbuję uzyskać dostęp do repozytorium, ale ten błąd to "Nie jest to repozytorium git (ani żadnego z katalogów nadrzędnych): .git", które nie jest związane z moim pierwotnym pytaniem/problemem. –

Powiązane problemy