Domanda

Ho un laptop con Ubuntu che vorrei fungere da server Subversion.Sia per me che mi impegno a livello locale, sia per gli altri da remoto.Quali sono i passaggi necessari per farlo funzionare?Si prega di includere i passaggi per:

  • Ottieni e configura Apache e i moduli necessari (so che ci sono altri modi per creare un server SVN, ma lo vorrei specifico per Apache)
  • Configurare un modo sicuro di accesso al server (SSH/HTTPS)
  • Configura un insieme di utenti autorizzati (ad esempio, devono essere autorizzati a impegnarsi, ma sono liberi di navigare)
  • Convalidare la configurazione con un commit iniziale (una sorta di "Hello world")

Questi passaggi possono comportare qualsiasi combinazione di istruzioni della riga di comando o dell'applicazione GUI.Se puoi, nota dove le istruzioni sono specifiche per una particolare distribuzione o versione e dove invece è possibile utilizzare la scelta di un particolare strumento da parte dell'utente (ad esempio, nano invece di vi).

È stato utile?

Soluzione

Passaggi che ho eseguito per rendere il mio laptop un server Subversion.Il credito deve andare a AlephZarro per le sue indicazioni Qui.Ora ho un server SVN funzionante (che attualmente è stato testato solo localmente).

Configurazione specifica:Kubuntu 8.04 Hardy Heron

Requisiti per seguire questa guida:

  • apt-get programma di gestione dei pacchetti
  • editor di testo (io uso Kate)
  • diritti di accesso sudo

1:Installa il server HTTP Apache e i moduli richiesti:

sudo apt-get install libapache2-svn apache2

Verranno installati i seguenti pacchetti aggiuntivi:

apache2-mpm-worker apache2-utils apache2.2-common

2:Abilita SSL

sudo a2enmod ssl
sudo kate /etc/apache2/ports.conf

Aggiungi o verifica che nel file sia presente quanto segue:

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

3:Genera un certificato SSL:

sudo apt-get install ssl-cert
sudo mkdir /etc/apache2/ssl
sudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

4:Crea host virtuale

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/svnserver
sudo kate /etc/apache2/sites-available/svnserver

Modifica (in ports.conf):

"NameVirtualHost *" to "NameVirtualHost *:443"

e (nel server svn)

<VirtualHost *> to <VirtualHost *:443>

Aggiungere, sotto ServerAdmin (anche nel file svnserver):

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM

5:Abilita il sito:

sudo a2ensite svnserver
sudo /etc/init.d/apache2 restart

Per superare gli avvisi:

sudo kate /etc/apache2/apache2.conf

Aggiungere:

"ServerName $your_server_name"

6:Aggiunta di repository:La seguente configurazione presuppone che vogliamo ospitare più repository.Esegui questo per creare il primo repository:

sudo mkdir /var/svn

REPOS=myFirstRepo
sudo svnadmin create /var/svn/$REPOS
sudo chown -R www-data:www-data /var/svn/$REPOS
sudo chmod -R g+ws /var/svn/$REPOS

6.a.Per ulteriori repository:eseguire nuovamente il passaggio 6 (modificando il valore di REPOS), saltando il passaggio mkdir /var/svn

7:Aggiungi un utente autenticato

sudo htpasswd -c -m /etc/apache2/dav_svn.passwd $user_name

8:Abilita e configura WebDAV e SVN:

sudo kate /etc/apache2/mods-available/dav_svn.conf

Aggiungi o decommenta:

<Location /svn>
DAV svn

# for multiple repositories - see comments in file
SVNParentPath /var/svn

AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
SSLRequireSSL
</Location>

9:Riavvia il server Apache:

sudo /etc/init.d/apache2 restart

10:Convalida:

Avviato un browser:

http://localhost/svn/$REPOS
https://localhost/svn/$REPOS

Entrambi richiedevano un nome utente e una password.Penso senza commentare:

<LimitExcept GET PROPFIND OPTIONS REPORT>

</LimitExcept>

In /etc/apache2/mods-available/dav_svn.conf, consentirebbe la navigazione anonima.

Il browser mostra "Revisione 0:/"

Impegna qualcosa:

svn import --username $user_name anyfile.txt https://localhost/svn/$REPOS/anyfile.txt -m “Testing”

Accettare il certificato e inserire la password.Controlla cosa hai appena commesso:

svn co --username $user_name https://localhost/svn/$REPOS

Seguendo questi passaggi (supponendo che non abbia commesso alcun errore di copia/incolla), avevo un repository SVN funzionante sul mio laptop.

Altri suggerimenti

Successivamente, dovevo eseguire (nel contesto dell'esempio citato sopra)

$ sudo chmod g+w /var/svn/$REPOS/db/rep-cache.db

$ sudo chown www-data:www-data /var/svn/$REPOS/db/rep-cache.db

Altrimenti ho continuato a ricevere un errore 409 quando commettevo modifiche locali (sebbene gli impegni fossero efficaci sul server, dovevo seguire gli aggiornamenti locali)

Questo articolo sembra fornire una panoramica piuttosto buona dell'intero processo.Consiglierei di seguire le istruzioni e quindi di pubblicare alcune domande più specifiche su eventuali problemi riscontrati che non sono affrontati negli articoli a cui io e altre persone ci siamo collegati in queste risposte.

Se ricevi 403 vietato quando accedi al server web potrebbe essere perché hai utilizzato un nome host che non è quello specificato nel file di configurazione (ad esempio localhost o 127.0.0.1).Prova a colpire https://qualunque cosa tu usi come nome host Invece...

Si prega di scrivere un singolo comando sul terminale.

Per aprire il terminale premere Ctrl + Alt + T, quindi digitare questo comando:

$sudo apt-get install subversion

Per Apache:

sudo apt-get -yq install apache2

Per SSH:

sudo apt-get -yq install openssh-server

Per la sovversione:

sudo apt-get -yq install subversion subversion-tools

Se lo desideri puoi combinarli in un unico comando come:

sudo apt-get -yq install apache2 openssh-server subversion subversion-tools

Per il resto non posso aiutarti...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top