Forutsetninger
Trinn 1: Oppdater systemet
Trinn 2: Installer Apache
Trinn 3: Installer SVN og mod_dav_svn-modulen
Trinn 4: Konfigurer SVN
Trinn 5: Start Apache og endre brannmurregler
Apache Subversion (SVN) er en mye brukt versjonskontrollløsning som hjelper til med å lagre filer av ulike versjoner, som kildekode og dokumenter.
I denne artikkelen vil jeg vise deg hvordan du bruker Apache Subversion og Apache til å bygge en SVN-server på en Vultr CentOS 7-serverforekomst.
Forutsetninger
- VM som kjører CentOS 7 (minimal installasjon foretrekkes, men ikke nødvendig).
- En sudo-bruker for pålogging. En annen Vultr-artikkel beskriver detaljene om hvordan du konfigurerer en sudo-bruker.
Trinn 1: Oppdater systemet
sudo yum update
sudo shutdown -r now
Etter omstart logger du på systemet igjen med samme sudo-bruker.
Trinn 2: Installer Apache
Installer Apache med YUM:
sudo yum install httpd
Fjern Apaches standard velkomstside:
sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf
Hindre Apache fra å vise filer i "/var/www/html"-katalogen:
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf
Trinn 3: Installer SVN og mod_dav_svn-modulen
For å få SVN til å fungere med Apache, må du installere en Apache-modul "mod dav svn" i tillegg til SVN:
sudo yum install subversion mod_dav_svn
1) Endre SVN-konfigurasjonsfilen
sudo vi /etc/httpd/conf.modules.d/10-subversion.conf
Filen skal lese:
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
Legg til følgende segment:
<Location /svn>
DAV svn
SVNParentPath /svn
AuthName "SVN Repos"
AuthType Basic
AuthUserFile /etc/svn/svn-auth
AuthzSVNAccessFile /svn/authz
Require valid-user
</Location>
Lagre og avslutt:
:wq!
Merk : I denne konfigurasjonen spesifiserte vi en HTTP-tilgangsautentiseringsfil "/etc/svn/svn-auth" og en brukertillatelseskontrollfil "/svn/authz". Begge vil bli opprettet senere.
2) Opprett en SVN-repo
sudo mkdir /svn
cd /svn
sudo svnadmin create repo1
sudo chown -R apache:apache repo1
3) Sett opp SVN-brukerkontoer
Bruk følgende kommandoer for å opprette en HTTP-tilgangsautentiseringsfil "/svn/svn-auth" og en SVN-brukerkonto "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
Hvis du vil opprette flere SVN-brukerkontoer, se følgende kommandoer:
sudo htpasswd -m /etc/svn/svn-auth user002
sudo htpasswd -m /etc/svn/svn-auth user003
Advarsel : Ikke bruk "-c"-flagget fra nå av, ellers vil du gjenoppbygge autentiseringsfilen og slette alle brukerkontoene du konfigurerte tidligere.
4) Oppsetttillatelser for brukere
sudo cp /svn/repo1/conf/authz /svn/authz
sudo vi /svn/authz
Anta at:
- Bruker "user001" er administrator.
- Bruker "user002" er en kvalifisert bruker som eier lese- og skrivetillatelser til SVN-repoen "repo1".
- Bruker "user003" er en trainee som kun kan lese innholdet i SVN repo "repo1".
Deretter kan du endre innstillingene som nedenfor:
[groups]
admin=user001
repo1_user=user002
repo1_trainee=user003
[/]
@admin=rw
[repo1:/]
@repo1_user=rw
@repo1_trainee=r
Lagre og avslutt:
:wq!
Trinn 5: Start Apache og endre brannmurregler
Start Apache:
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
Åpne HTTP-tjenesteporten:
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
Til slutt, bruk følgende bane for å få tilgang til SVN-repoen "repo1" på serveren din fra en SVN-klient:
http://<your-server-ip>/svn/repo1/
Det avslutter veiledningen vår. Takk for at du leser.