2013-01-04 10 views
5

Sto provando a installare gitlist su CentOS Linux (con gitolite nel caso che importi - ho rilassato le autorizzazioni sulle directory repo gestite da gitolite).gitlist non può ottenere nulla oltre l'elenco degli archivi

Ho estratto il tarball versione 0.3 da oggi da gitlist.org.

mio config.ini si presenta così:

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 

virtuale direttiva ospite in 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> 

Con questa impostazione, andando a http://sub.example.com/gitlist risultati nel messaggio di errore del browser che dice che /index.php non esiste (cioè sta provando ad andare a /var/www/html/index.php)

In questo caso, se vado a http://sub.example.com/gitlist/index.php, l'elenco degli archivi (apparentemente) appare correttamente. Quando clicco su uno dei repository, qualcosa va storto quando tenta di eseguire, git. Ottengo:

Whoops, looks like something went wrong. 

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

Se rimuovo la regola di riscrittura da .htaccess, sono in grado di accedere alla pagina indice specificando index.php o meno. Ma in questo caso, quando clicco su un repo, si cerca di trovare il repo sotto la directory gitlist:

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

Qualcuno può contribuire a risolvere questo pasticcio?

+0

Perché la riscrittura? Metti la tua webapp gitlist dove vuoi, dichiara un alias e una directory, e dovrebbe essere sufficiente (come in https://github.com/VonC/compileEverything/blob/master/apache/env.conf.tpl#L41-L93) – VonC

+0

La riscrittura fa parte dell'app (viene fornita con un .htaccess che la contiene). Non so perché è lì. L'ho provato senza, come ho indicato, e ho ancora avuto problemi. Stai dicendo che se lo sposto fuori dalla mia web directory il problema andrà via? –

+0

Sto solo indicando altra tecnica per fare riferimento a una webapp senza dover utilizzare la riscrittura. Dovrò testare gitlist e vedere se funziona in questo modo. – VonC

risposta

1

Sono finalmente riuscito a testare gitlist.

ho rimosso il .htaccess, e ha mantenuto la seguente configurazione in 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> 

(Da my own commit, e this setup)

Nota che:

  • questo è per la corsa gitlist nella sua sottodirectory: https://myServer/gitlist (non solo https://myserver)
  • .210
  • Esso non visualizzerà tutti i file in una sottodirectory all'interno di un repo git: vedi Issue 250, la patch è in attesa
+0

VonC, grazie per i vostri sforzi. Il mio problema principale era in realtà incentrato sull'errore di opzione sconosciuto che ho menzionato, che ho risolto aggiornando il mio eseguibile git. Sto ancora avendo un errore quando provo ad accedere al mio repository, ma quell'errore è 'Non un repository git (o nessuna delle directory madri): .git' che non sembra correlato alla mia domanda/problema originale. –

Problemi correlati