Apache Subversion (SVN) adalah solusi kontrol versi yang banyak digunakan yang membantu dalam menyimpan file dari berbagai versi, seperti kode sumber dan dokumen.
Pada artikel ini, saya akan menunjukkan kepada Anda bagaimana menggunakan Apache Subversion dan Apache untuk membangun server SVN pada instance server Vultr CentOS 7.
Step 1: Update the system
1 2 |
sudo yum update sudo shutdown -r now |
Setelah reboot, masuk lagi ke sistem menggunakan pengguna sudo yang sama.
Install Apache using YUM:
1 |
sudo yum install httpd |
Hapus halaman selamat datang standar Apache:
1 |
sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf |
Cegah Apache agar tidak menampilkan file di direktori “/ var / www / html”:
1 |
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf |
Step 3: Install SVN and the mod_dav_svn module
Untuk membuat SVN berfungsi dengan Apache, Anda perlu menginstal modul Apache “moddavsvn” di samping SVN:
1 |
sudo yum install subversion mod_dav_svn |
Step 4: Configure SVN
1) Modify the SVN configuration file
1 |
sudo vi /etc/httpd/conf.modules.d/10-subversion.conf |
File tersebut harus membaca:
1 2 3 |
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 |
Tambahkan segmen berikut:
1 2 3 4 5 6 7 8 9 |
<Location /svn> DAV svn SVNParentPath /svn AuthName "SVN Repos" AuthType Basic AuthUserFile /etc/svn/svn-auth AuthzSVNAccessFile /svn/authz Require valid-user </Location> |
Simpan dan keluar:
1 |
:wq |
Catatan: Dalam konfigurasi ini, kami menetapkan file otentikasi akses HTTP “/ etc / svn / svn-auth” dan file kontrol izin pengguna “/ svn / authz”. Keduanya akan dibuat nanti.
2) Create an SVN repo
1 2 3 4 |
sudo mkdir /svn cd /svn sudo svnadmin create repo1 sudo chown -R apache:apache repo1 |
3) Setup SVN user accounts
Gunakan perintah berikut untuk membuat file otentikasi akses HTTP “/ svn / svn-auth” dan akun pengguna SVN “user001”:
1 2 3 4 |
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 |
Jika Anda ingin membuat lebih banyak akun pengguna SVN, lihat perintah berikut:
1 2 |
sudo htpasswd -m /etc/svn/svn-auth user002 sudo htpasswd -m /etc/svn/svn-auth user003 |
Peringatan: Jangan gunakan bendera “-c” mulai sekarang, atau Anda akan membangun kembali file otentikasi dan menghapus semua akun pengguna yang Anda siapkan sebelumnya.
4) Setup permissions for users
1 2 |
sudo cp /svn/repo1/conf/authz /svn/authz sudo vi /svn/authz |
Asumsikan bahwa:
1 2 3 |
User "user001" is the administrator. User "user002" is a qualified user who owns read and write permissions to the SVN repo "repo1". User "user003" is a trainee who can only read the contents of SVN repo "repo1". |
Kemudian Anda dapat mengubah pengaturan dalam seperti di bawah ini:
1 2 3 4 5 6 7 8 9 10 11 |
[groups] admin=user001 repo1_user=user002 repo1_trainee=user003 [/] @admin=rw [repo1:/] @repo1_user=rw @repo1_trainee=r |
Simpan dan keluar:
1 |
:wq |
Step 5: Start Apache and modify firewall rules
Start Apache:
1 2 |
sudo systemctl start httpd.service sudo systemctl enable httpd.service |
Open the HTTP service port:
1 2 |
sudo firewall-cmd --zone=public --permanent --add-service=http sudo firewall-cmd --reload |
Finally, use the following path to access the SVN repo “repo1” on your server from an SVN client:
1 |
http://<your-server-ip>/svn/repo1/ |