Προαπαιτούμενα
Βήμα 1: Ενημερώστε το σύστημα
Βήμα 2: Εγκαταστήστε το Apache
Βήμα 3: Εγκαταστήστε το SVN και τη λειτουργική μονάδα mod_dav_svn
Βήμα 4: Διαμόρφωση SVN
Βήμα 5: Εκκινήστε τον Apache και τροποποιήστε τους κανόνες του τείχους προστασίας
Το Apache Subversion (SVN) είναι μια ευρέως χρησιμοποιούμενη λύση ελέγχου έκδοσης που βοηθά στην αποθήκευση αρχείων διαφόρων εκδόσεων, όπως πηγαίο κώδικα και έγγραφα.
Σε αυτό το άρθρο, θα σας δείξω πώς να χρησιμοποιήσετε το Apache Subversion και το Apache για να δημιουργήσετε έναν διακομιστή SVN σε μια παρουσία διακομιστή Vultr CentOS 7.
Προαπαιτούμενα
- VM με CentOS 7 (προτιμάται η ελάχιστη εγκατάσταση, αλλά δεν απαιτείται).
- Ένας χρήστης sudo για σύνδεση. Ένα άλλο άρθρο του Vultr περιγράφει τις λεπτομέρειες σχετικά με τον τρόπο ρύθμισης ενός χρήστη sudo.
Βήμα 1: Ενημερώστε το σύστημα
sudo yum update
sudo shutdown -r now
Μετά την επανεκκίνηση, συνδεθείτε ξανά στο σύστημα χρησιμοποιώντας τον ίδιο χρήστη sudo.
Βήμα 2: Εγκαταστήστε το Apache
Εγκαταστήστε το Apache χρησιμοποιώντας το YUM:
sudo yum install httpd
Καταργήστε την προεπιλεγμένη σελίδα καλωσορίσματος του Apache:
sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf
Αποτρέψτε τον Apache από την εμφάνιση αρχείων στον κατάλογο "/var/www/html":
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf
Βήμα 3: Εγκαταστήστε το SVN και τη λειτουργική μονάδα mod_dav_svn
Για να κάνετε το SVN να λειτουργεί με τον Apache, πρέπει να εγκαταστήσετε μια λειτουργική μονάδα Apache "mod dav svn" εκτός από το SVN:
sudo yum install subversion mod_dav_svn
1) Τροποποιήστε το αρχείο διαμόρφωσης SVN
sudo vi /etc/httpd/conf.modules.d/10-subversion.conf
Το αρχείο θα πρέπει να διαβάζει:
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
Προσθέστε το ακόλουθο τμήμα:
<Location /svn>
DAV svn
SVNParentPath /svn
AuthName "SVN Repos"
AuthType Basic
AuthUserFile /etc/svn/svn-auth
AuthzSVNAccessFile /svn/authz
Require valid-user
</Location>
Αποθήκευση και έξοδος:
:wq!
Σημείωση : Σε αυτήν τη διαμόρφωση, καθορίσαμε ένα αρχείο ελέγχου ταυτότητας πρόσβασης HTTP "/etc/svn/svn-auth" και ένα αρχείο ελέγχου δικαιωμάτων χρήστη "/svn/authz". Και τα δύο θα δημιουργηθούν αργότερα.
2) Δημιουργήστε ένα αποθετήριο SVN
sudo mkdir /svn
cd /svn
sudo svnadmin create repo1
sudo chown -R apache:apache repo1
3) Ρύθμιση λογαριασμών χρηστών SVN
Χρησιμοποιήστε τις ακόλουθες εντολές για να δημιουργήσετε ένα αρχείο ελέγχου ταυτότητας πρόσβασης HTTP "/svn/svn-auth" και έναν λογαριασμό χρήστη 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
Εάν θέλετε να δημιουργήσετε περισσότερους λογαριασμούς χρηστών SVN, ανατρέξτε στις ακόλουθες εντολές:
sudo htpasswd -m /etc/svn/svn-auth user002
sudo htpasswd -m /etc/svn/svn-auth user003
Προειδοποίηση : Μην χρησιμοποιείτε τη σημαία "-c" από εδώ και στο εξής, διαφορετικά θα δημιουργήσετε ξανά το αρχείο ελέγχου ταυτότητας και θα διαγράψετε όλους τους λογαριασμούς χρηστών που ρυθμίσατε νωρίτερα.
4) Δικαιώματα εγκατάστασης για χρήστες
sudo cp /svn/repo1/conf/authz /svn/authz
sudo vi /svn/authz
Υποθέστε ότι:
- Ο χρήστης "user001" είναι ο διαχειριστής.
- Ο χρήστης "user002" είναι ένας πιστοποιημένος χρήστης που διαθέτει δικαιώματα ανάγνωσης και εγγραφής στο repo SVN "repo1".
- Ο χρήστης "user003" είναι ένας εκπαιδευόμενος που μπορεί να διαβάσει μόνο τα περιεχόμενα του SVN repo "repo1".
Στη συνέχεια, μπορείτε να τροποποιήσετε τις ρυθμίσεις ως εξής:
[groups]
admin=user001
repo1_user=user002
repo1_trainee=user003
[/]
@admin=rw
[repo1:/]
@repo1_user=rw
@repo1_trainee=r
Αποθήκευση και έξοδος:
:wq!
Βήμα 5: Εκκινήστε τον Apache και τροποποιήστε τους κανόνες του τείχους προστασίας
Εκκίνηση του Apache:
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
Ανοίξτε τη θύρα υπηρεσίας HTTP:
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
Τέλος, χρησιμοποιήστε την ακόλουθη διαδρομή για να αποκτήσετε πρόσβαση στο repo SVN "repo1" στον διακομιστή σας από έναν πελάτη SVN:
http://<your-server-ip>/svn/repo1/
Αυτό ολοκληρώνει το σεμινάριο μας. Ευχαριστούμε που το διαβάσατε.