Apache Subversion (SVN) è una soluzione di controllo versione ampiamente utilizzata che aiuta a memorizzare file di varie versioni, come codice sorgente e documenti.
In questo articolo, ti mostrerò come utilizzare Apache Subversion e Apache per creare un server SVN su un'istanza del server Vultr CentOS 7.
Prerequisiti
- VM che esegue CentOS 7 (installazione minima preferita, ma non richiesta).
- Un utente sudo per l'accesso. Un altro articolo di Vultr descrive i dettagli su come configurare un utente sudo.
Passaggio 1: aggiornare il sistema
sudo yum update
sudo shutdown -r now
Dopo il riavvio, accedere nuovamente al sistema utilizzando lo stesso utente sudo.
Passaggio 2: installare Apache
Installa Apache usando YUM:
sudo yum install httpd
Rimuovi la pagina di benvenuto predefinita di Apache:
sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf
Impedire ad Apache di visualizzare i file nella directory "/ var / www / html":
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf
Passaggio 3: installare SVN e il modulo mod_dav_svn
Per far funzionare SVN con Apache, è necessario installare un modulo Apache "mod dav svn" oltre a SVN:
sudo yum install subversion mod_dav_svn
1) Modifica il file di configurazione SVN
sudo vi /etc/httpd/conf.modules.d/10-subversion.conf
Il file dovrebbe contenere:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule dontdothat_module modules/mod_dontdothat.so
Aggiungi il seguente segmento:
<Location /svn>
DAV svn
SVNParentPath /svn
AuthName "SVN Repos"
AuthType Basic
AuthUserFile /etc/svn/svn-auth
AuthzSVNAccessFile /svn/authz
Require valid-user
</Location>
Salva ed esci:
:wq!
Nota : in questa configurazione, abbiamo specificato un file di autenticazione dell'accesso HTTP "/ etc / svn / svn-auth" e un file di controllo delle autorizzazioni utente "/ svn / authz". Entrambi saranno creati in seguito.
2) Creare un repository SVN
sudo mkdir /svn
cd /svn
sudo svnadmin create repo1
sudo chown -R apache:apache repo1
3) Configurare gli account utente SVN
Utilizzare i seguenti comandi per creare un file di autenticazione dell'accesso HTTP "/ svn / svn-auth" e un account utente SVN "user001":
sudo mkdir /etc/svn
sudo htpasswd -cm /etc/svn/svn-auth user001
sudo chown root:apache /etc/svn/svn-auth
sudo chmod 640 /etc/svn/svn-auth
Se si desidera creare più account utente SVN, fare riferimento ai seguenti comandi:
sudo htpasswd -m /etc/svn/svn-auth user002
sudo htpasswd -m /etc/svn/svn-auth user003
Avviso : non utilizzare il flag "-c" d'ora in poi, o ricostruirai il file di autenticazione e cancellerai tutti gli account utente che hai impostato in precedenza.
4) Autorizzazioni di installazione per gli utenti
sudo cp /svn/repo1/conf/authz /svn/authz
sudo vi /svn/authz
Supponiamo che:
- L'utente "user001" è l'amministratore.
- L'utente "user002" è un utente qualificato che possiede autorizzazioni di lettura e scrittura per il repository SVN "repo1".
- L'utente "user003" è un tirocinante che può leggere solo i contenuti del repository SVN "repo1".
Quindi è possibile modificare le impostazioni come di seguito:
[groups]
admin=user001
repo1_user=user002
repo1_trainee=user003
[/]
@admin=rw
[repo1:/]
@repo1_user=rw
@repo1_trainee=r
Salva ed esci:
:wq!
Passaggio 5: avviare Apache e modificare le regole del firewall
Avvia Apache:
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
Apri la porta del servizio HTTP:
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
Infine, utilizzare il seguente percorso per accedere al repository SVN "repo1" sul server da un client SVN:
http://<your-server-ip>/svn/repo1/
Questo conclude il nostro tutorial. Grazie per aver letto.