Come posso configurazione di Apache per servire SVN con questa particolare configurazione URL?
-
22-08-2019 - |
Domanda
Ho un VPS e sto cercando di ospitare diversi progetti SVN. Mi piacerebbe i percorsi URL per essere come questo:
http://svn.domain.com -> Welcome HTML page (at /var/www/svn.domain.com/httpdocs/index.php)
http://svn.domain.com/project1 -> Project 1 SVN Root
http://svn.domain.com/project2 -> Project 2 SVN Root
http://svn.domain.com/project3 -> Project 3 SVN Root
Tuttavia, con il codice qui sotto, la prima cosa (pagina HTML Benvenuti) non si presenta, come il blocco di posizione ha la precedenza sul DocumentRoot.
Impostazione del blocco di posizione a <Location /repos>
opere, ma poi i miei URL diventare http://svn.domain.com/repos/project1
, che non mi piace.
Qualche suggerimento?
<VirtualHost *>
ServerName svn.domain.com
DocumentRoot /var/www/svn.domain.com/httpdocs
<Location />
DAV svn
SVNParentPath /var/svn
SVNIndexXSLT "/svnindex.xsl"
AuthzSVNAccessFile /var/svn/access
SVNListParentPath On
# try anonymous access first, resort to real
# authentication if necessary.
Satisfy Any
Require valid-user
# how to authenticate a user
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /var/svn/passwd
</Location>
</VirtualHost>
<Directory /var/svn>
Allow from all
</Directory>
Soluzione
è possibile utilizzare SVNPath di direttiva, tuttavia bisogna impostare tre posizioni (ogni progetto ha bisogno di un proprio)
Altri suggerimenti
Si potrebbe ottenere intorno a questo senza dover modificare la configurazione di Apache ogni volta che si aggiunge un nuovo progetto con l'aggiunta di un sottodominio per i repository SVN. Faresti finisce con qualcosa di simile:
<VirtualHost *>
ServerName svn.domain.com
DocumentRoot /var/www/svn.domain.com/httpdocs
<Location /svn>
DAV svn
SVNParentPath /var/svn
SVNIndexXSLT "/svnindex.xsl"
AuthzSVNAccessFile /var/svn/access
SVNListParentPath On
# try anonymous access first, resort to real
# authentication if necessary.
Satisfy Any
Require valid-user
# how to authenticate a user
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /var/svn/passwd
</Location>
<Directory /var/svn>
Allow from all </Directory>
<Directory /var/www/svn.domain.com/httpdocs>
# Doc. root directives here</Directory>
Si sarebbe quindi necessario accedere ai repository con URL del modulo http: // svn. domain.com/svn/project1/ , ma se si desidera aggiungere project4 ecc tutto quello che dovete fare è aggiungere il nuovo repository in / var / svn.
mod_rewrite ? Si potrebbe impostare una cartella per i non-SVN roba ( http://example.com/info/ ) , quindi utilizzare mod_rewrite per reindirizzare le richieste per '/' o 'index.php' a '/info/index.php'. Vorrei che lavorare?