Subacțiunea Apache (SVN) este o soluție de control de versiune utilizată pe scară largă, care ajută la stocarea fișierelor din diferite versiuni, cum ar fi codul sursă și documente.
În acest articol, vă voi arăta cum să utilizați Apache Subversion și Apache pentru a construi un server SVN pe o instanță a serverului Vultr CentOS 7.
Cerințe preliminare
- VM care rulează CentOS 7 (instalarea este preferată, dar nu este necesară).
- Un utilizator sudo pentru autentificare. Un alt articol Vultr descrie detaliile despre modul de configurare a unui utilizator sudo.
Pasul 1: Actualizați sistemul
sudo yum update
sudo shutdown -r now
După repornire, conectați-vă din nou la sistem utilizând același utilizator sudo.
Pasul 2: Instalați Apache
Instalați Apache folosind YUM:
sudo yum install httpd
Eliminați pagina de întâmpinare implicită a lui Apache:
sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf
Împiedică Apache să afișeze fișiere în directorul "/ var / www / html":
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf
Pasul 3: Instalați SVN și modulul mod_dav_svn
Pentru ca SVN să funcționeze cu Apache, trebuie să instalați un modul Apache „mod dav svn”, pe lângă SVN:
sudo yum install subversion mod_dav_svn
1) Modificați fișierul de configurare SVN
sudo vi /etc/httpd/conf.modules.d/10-subversion.conf
Fișierul trebuie să citească:
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
Adăugați următorul segment:
<Location /svn>
DAV svn
SVNParentPath /svn
AuthName "SVN Repos"
AuthType Basic
AuthUserFile /etc/svn/svn-auth
AuthzSVNAccessFile /svn/authz
Require valid-user
</Location>
Salvează și închide:
:wq!
Notă : În această configurație, am specificat un fișier de autentificare de acces HTTP „/ etc / svn / svn-auth” și un fișier de control al permiselor utilizatorului „/ svn / authz”. Ambele vor fi create ulterior.
2) Creați un repo SVN
sudo mkdir /svn
cd /svn
sudo svnadmin create repo1
sudo chown -R apache:apache repo1
3) Configurarea conturilor de utilizator SVN
Utilizați următoarele comenzi pentru a crea un fișier de autentificare de acces HTTP "/ svn / svn-auth" și un cont de utilizator 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
Dacă doriți să creați mai multe conturi de utilizator SVN, consultați următoarele comenzi:
sudo htpasswd -m /etc/svn/svn-auth user002
sudo htpasswd -m /etc/svn/svn-auth user003
Avertisment : nu folosiți flag-ul „-c” de acum înainte sau veți reconstrui fișierul de autentificare și veți șterge toate conturile de utilizator pe care le-ați configurat anterior.
4) Permisiunile de configurare pentru utilizatori
sudo cp /svn/repo1/conf/authz /svn/authz
sudo vi /svn/authz
Asuma ca:
- Utilizatorul „user001” este administratorul.
- Utilizatorul „user002” este un utilizator calificat care deține permisiuni de citire și scriere la repo SVN „repo1”.
- Utilizatorul „user003” este un stagiar care poate citi numai conținutul repo SVN „repo1”.
Apoi puteți modifica setările în modul de mai jos:
[groups]
admin=user001
repo1_user=user002
repo1_trainee=user003
[/]
@admin=rw
[repo1:/]
@repo1_user=rw
@repo1_trainee=r
Salvează și închide:
:wq!
Pasul 5: Porniți Apache și modificați regulile firewall-ului
Începeți Apache:
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
Deschideți portul de serviciu HTTP:
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
În cele din urmă, utilizați următoarea cale pentru a accesa SVN repo "repo1" pe serverul dvs. de la un client SVN:
http://<your-server-ip>/svn/repo1/
Asta încheie tutorialul nostru. Vă mulțumim pentru lectură.