[SVN] Hướng dẫn cài đặt SVN Server trên Centos 7

SVN là một giải pháp kiểm soát các phiên bản được sử dụng rộng rãi, giúp lưu trữ các tệp thuộc các phiên bản khác nhau, như mã nguồn và tài liệu.

Bước 1: Update the system

sudo yum update
sudo shutdown -r now

Bước 2: Cài đặt Apache

sudo yum install httpd

Xóa default welcome page của Apache:

sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf

Ngăn Apache hiển thị các tệp trong thư mục "/var/www/html":

sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf

Bước 3: Cài đặt SVN và module mod_dav_svn

sudo yum install subversion mod_dav_svn

Bước 4: Cấu hình SVN

1) Sửa file cấu hình SVN

sudo vi /etc/httpd/conf.modules.d/10-subversion.conf

Tìm đến dòng

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

Thêm vào nội dung bên dưới:

<Location /svn>
DAV svn
SVNParentPath /svn
AuthName "SVN Repos"
AuthType Basic
AuthUserFile /etc/svn/svn-auth
AuthzSVNAccessFile /svn/authz
Require valid-user
</Location>

Lưu và thoát:

:wq!

Lưu ý: Trong cấu hình này, chúng tôi đã chỉ định tệp xác thực truy cập HTTP "/ etc / svn / svn-auth" và tệp kiểm soát quyền người dùng "/svn/authz". Cả hai chúng sẽ được tạo sau.

2) Tạo SVN repo

sudo mkdir /svn
cd /svn
sudo svnadmin create repo1
sudo chown -R apache:apache repo1

3) Tạo tài khoản SVN user

Sử dụng các lệnh sau để tạo tệp xác thực truy cập HTTP "/svn/svn-auth" và tài khoản người dùng 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

Nếu bạn muốn tạo thêm tài khoản người dùng SVN, hãy tham khảo các lệnh sau:

sudo htpasswd -m /etc/svn/svn-auth user002
sudo htpasswd -m /etc/svn/svn-auth user003

Lưu ý: Không sử dụng "-c" từ bây giờ, nếu không bạn sẽ tạo lại tệp xác thực và xóa tất cả tài khoản người dùng mà bạn đã thiết lập trước đó.

4) Setup permissions for users

sudo cp /svn/repo1/conf/authz /svn/authz
sudo vi /svn/authz

Giả định rằng:

  • Người dùng "user001" là quản trị viên.
  • Người dùng "user002" là người dùng đủ điều kiện sở hữu quyền đọc và ghi đối với repo SVN "repo1".
  • Người dùng "user003" là học viên chỉ có thể đọc nội dung của repo SVN "repo1".

Sau đó, bạn có thể sửa đổi cài đặt bên trong như dưới đây:

[groups]
admin=user001
repo1_user=user002
repo1_trainee=user003

[/]
@admin=rw

[repo1:/]
@repo1_user=rw
@repo1_trainee=r

Lưu và thoát

:wq!

Step 5: Start Apache and modify firewall rules

Start Apache:

sudo systemctl start httpd.service
sudo systemctl enable httpd.service

Mở port httpd trên firewalld:

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload

Cuối cùng, sử dụng đường dẫn sau để truy cập repo SVN "repo1" trên máy chủ của bạn từ một ứng dụng khách SVN:

http://<your-server-ip>/svn/repo1/

Chúc các bạn thành công.

Bình luận