Requisits previs
Pas 1: actualitzeu el sistema
Pas 2: instal·leu Apache
Pas 3: instal·leu SVN i el mòdul mod_dav_svn
Pas 4: configureu SVN
Pas 5: inicieu Apache i modifiqueu les regles del tallafoc
Apache Subversion (SVN) és una solució de control de versions àmpliament utilitzada que ajuda a emmagatzemar fitxers de diverses versions, com ara codi font i documents.
En aquest article, us mostraré com utilitzar Apache Subversion i Apache per crear un servidor SVN en una instància del servidor Vultr CentOS 7.
Requisits previs
- VM amb CentOS 7 (es prefereix una instal·lació mínima, però no necessària).
- Un usuari sudo per iniciar sessió. Un altre article de Vultr descriu els detalls sobre com configurar un usuari sudo.
Pas 1: actualitzeu el sistema
sudo yum update
sudo shutdown -r now
Després del reinici, torneu a iniciar sessió al sistema amb el mateix usuari sudo.
Pas 2: instal·leu Apache
Instal·leu Apache amb YUM:
sudo yum install httpd
Elimina la pàgina de benvinguda predeterminada d'Apache:
sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf
Eviteu que Apache mostri fitxers al directori "/var/www/html":
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf
Pas 3: instal·leu SVN i el mòdul mod_dav_svn
Per fer que SVN funcioni amb Apache, cal que instal·leu un mòdul Apache "mod dav svn" a més d'SVN:
sudo yum install subversion mod_dav_svn
1) Modifiqueu el fitxer de configuració SVN
sudo vi /etc/httpd/conf.modules.d/10-subversion.conf
El fitxer hauria de llegir:
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
Afegiu el segment següent:
<Location /svn>
DAV svn
SVNParentPath /svn
AuthName "SVN Repos"
AuthType Basic
AuthUserFile /etc/svn/svn-auth
AuthzSVNAccessFile /svn/authz
Require valid-user
</Location>
Desa i surt:
:wq!
Nota : en aquesta configuració, hem especificat un fitxer d'autenticació d'accés HTTP "/etc/svn/svn-auth" i un fitxer de control de permisos d'usuari "/svn/authz". Tots dos es crearan més endavant.
2) Creeu un repo SVN
sudo mkdir /svn
cd /svn
sudo svnadmin create repo1
sudo chown -R apache:apache repo1
3) Configurar comptes d'usuari SVN
Utilitzeu les ordres següents per crear un fitxer d'autenticació d'accés HTTP "/svn/svn-auth" i un compte d'usuari 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
Si voleu crear més comptes d'usuari SVN, consulteu les ordres següents:
sudo htpasswd -m /etc/svn/svn-auth user002
sudo htpasswd -m /etc/svn/svn-auth user003
Avís : no utilitzeu el senyalador "-c" a partir d'ara, o reconstruirà el fitxer d'autenticació i esborrarà tots els comptes d'usuari que hàgiu configurat anteriorment.
4) Configurar permisos per als usuaris
sudo cp /svn/repo1/conf/authz /svn/authz
sudo vi /svn/authz
Suposem que:
- L'usuari "user001" és l'administrador.
- L'usuari "user002" és un usuari qualificat que té permisos de lectura i escriptura al repositori SVN "repo1".
- L'usuari "user003" és un aprenent que només pot llegir el contingut del repo SVN "repo1".
A continuació, podeu modificar la configuració com a continuació:
[groups]
admin=user001
repo1_user=user002
repo1_trainee=user003
[/]
@admin=rw
[repo1:/]
@repo1_user=rw
@repo1_trainee=r
Desa i surt:
:wq!
Pas 5: inicieu Apache i modifiqueu les regles del tallafoc
Inicieu Apache:
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
Obriu el port del servei HTTP:
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
Finalment, utilitzeu el camí següent per accedir al repositori SVN "repo1" al vostre servidor des d'un client SVN:
http://<your-server-ip>/svn/repo1/
Així conclou el nostre tutorial. Gràcies per llegir.