Preduvjeti
Korak 1: Ažurirajte sustav
Korak 2: Instalirajte Apache
Korak 3: Instalirajte SVN i modul mod_dav_svn
Korak 4: Konfigurirajte SVN
Korak 5: Pokrenite Apache i izmijenite pravila vatrozida
Apache Subversion (SVN) je široko korišteno rješenje za kontrolu verzija koje pomaže u pohranjivanju datoteka različitih verzija, poput izvornog koda i dokumenata.
U ovom članku pokazat ću vam kako koristiti Apache Subverziju i Apache za izgradnju SVN poslužitelja na instanci poslužitelja Vultr CentOS 7.
Preduvjeti
- VM koji pokreće CentOS 7 (minimalna instalacija poželjna, ali nije potrebna).
- Korisnik sudo za prijavu. Drugi Vultr članak opisuje pojedinosti o tome kako postaviti sudo korisnika.
Korak 1: Ažurirajte sustav
sudo yum update
sudo shutdown -r now
Nakon ponovnog pokretanja, ponovno se prijavite u sustav pomoću istog sudo korisnika.
Korak 2: Instalirajte Apache
Instalirajte Apache koristeći YUM:
sudo yum install httpd
Uklonite Apacheovu zadanu stranicu dobrodošlice:
sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf
Spriječite Apacheu da prikazuje datoteke u direktoriju "/var/www/html":
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf
Korak 3: Instalirajte SVN i modul mod_dav_svn
Da bi SVN radio s Apacheom, morate pored SVN-a instalirati Apache modul "mod dav svn":
sudo yum install subversion mod_dav_svn
1) Izmijenite SVN konfiguracijsku datoteku
sudo vi /etc/httpd/conf.modules.d/10-subversion.conf
Datoteka bi trebala glasiti:
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
Dodajte sljedeći segment:
<Location /svn>
DAV svn
SVNParentPath /svn
AuthName "SVN Repos"
AuthType Basic
AuthUserFile /etc/svn/svn-auth
AuthzSVNAccessFile /svn/authz
Require valid-user
</Location>
Spremi i zatvori:
:wq!
Napomena : U ovoj smo konfiguraciji naveli HTTP datoteku za provjeru autentičnosti pristupa "/etc/svn/svn-auth" i datoteku kontrole dopuštenja korisnika "/svn/authz". Obje će se kasnije stvoriti.
2) Napravite SVN repo
sudo mkdir /svn
cd /svn
sudo svnadmin create repo1
sudo chown -R apache:apache repo1
3) Postavite SVN korisničke račune
Upotrijebite sljedeće naredbe za stvaranje HTTP datoteke za provjeru autentičnosti pristupa "/svn/svn-auth" i SVN korisničkog računa "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
Ako želite stvoriti više SVN korisničkih računa, pogledajte sljedeće naredbe:
sudo htpasswd -m /etc/svn/svn-auth user002
sudo htpasswd -m /etc/svn/svn-auth user003
Upozorenje : Od sada nemojte koristiti oznaku "-c" ili ćete ponovno izgraditi autentifikacijsku datoteku i izbrisati sve korisničke račune koje ste prethodno postavili.
4) Postavljanje dopuštenja za korisnike
sudo cp /svn/repo1/conf/authz /svn/authz
sudo vi /svn/authz
Pretpostavi da:
- Korisnik "user001" je administrator.
- Korisnik "user002" je kvalificirani korisnik koji posjeduje dopuštenja za čitanje i pisanje u SVN repo "repo1".
- Korisnik "user003" je pripravnik koji može čitati samo sadržaj SVN repo "repo1".
Zatim možete promijeniti postavke unutar kako slijedi:
[groups]
admin=user001
repo1_user=user002
repo1_trainee=user003
[/]
@admin=rw
[repo1:/]
@repo1_user=rw
@repo1_trainee=r
Spremi i zatvori:
:wq!
Korak 5: Pokrenite Apache i izmijenite pravila vatrozida
Pokrenite Apache:
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
Otvorite priključak HTTP usluge:
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
Konačno, koristite sljedeću stazu za pristup SVN repo "repo1" na vašem poslužitelju sa SVN klijenta:
http://<your-server-ip>/svn/repo1/
Time je naš vodič završen. Hvala na čitanju.