Apache Subversion hay SVN là một hệ thống kiểm soát phiên bản và sửa đổi phần mềm nguồn mở do Apache Software Foundation phát triển. Hệ thống này được sử dụng để duy trì các phiên bản hiện tại và lịch sử của mã nguồn, tài liệu và trang web.
Subversion hay svn được sử dụng rộng rãi cho cộng đồng dự án lớn và nguồn mở như Apache Software Foundation, FreeBSD, GCC, SourceForge, v.v.
Trong bài viết này, tôi sẽ chỉ cho bạn cách thiết lập Apache Subversion bằng máy chủ Ubuntu 18.04 LTS. Chúng tôi sẽ cài đặt và cấu hình phần mềm svn với Apache làm máy chủ web, bật 'xác thực cơ bản' cho người dùng và truy cập an toàn bằng cách sử dụng Letsencrypt SSL để truy cập kho lưu trữ.
Đối với những ai thích GIT, hướng dẫn GIT Ubuntu 18.04 có tại đây.
Cài đặt máy chủ web Apache2 bằng lệnh apt bên dưới.
Sau khi cài đặt hoàn tất, hãy thêm các dịch vụ SSH và HTTP vào cấu hình tường lửa ufw.
Chạy các lệnh ufw bên dưới.
Bật tường lửa.
Bây giờ hãy khởi động dịch vụ Apache2 và cho phép nó khởi chạy mỗi lần khởi động hệ thống.
Máy chủ web Apache2 đã hoạt động và các dịch vụ SSH và HTTP đã được thêm vào danh sách dịch vụ tường lửa.
Cài đặt Subversion bằng lệnh apt bên dưới.
Bây giờ hãy kiểm tra lệnh svn.
Apache Subversion (SVN) đã được cài đặt trên Ubuntu 18.04 Server.
Tạo một thư mục chính '/svn' mới.
Và tạo một kho lưu trữ mẫu mới có tên 'hakase-project' bằng lệnh svnadmin bên dưới.
Bây giờ hãy thay đổi chủ sở hữu của thư mục '/svn/hakase-project' thành người dùng và nhóm 'apache'.
Và kho lưu trữ svn đã được tạo.
Cài đặt certbot trên máy chủ Ubuntu bằng lệnh yum bên dưới.
Sau khi cài đặt hoàn tất, chúng ta cần thêm dịch vụ HTTPS vào danh sách dịch vụ tường lửa ufw.
Chạy lệnh ufw bên dưới.
Bây giờ hãy dừng dịch vụ httpd để chúng ta có thể tạo SSL Letsencrypt bằng máy chủ web tạm thời 'độc lập'.
Tạo SSL Letsencrypt cho tên miền 'svn.hakase-labs.io' bằng lệnh certbot bên dưới.
Sau khi hoàn tất, bạn sẽ nhận được các tệp chứng chỉ bên trong thư mục '/etc/letsencrypt/live'.
Đi đến thư mục cấu hình '/etc/apache2'.
Tạo cấu hình máy chủ ảo subversion mới 'svn.conf' trên thư mục 'sites-available'.
Dán cấu hình bên dưới.
Lưu và thoát.
Tiếp theo, chúng ta cần tạo một danh sách người dùng mới có thể xem và cam kết tệp vào kho lưu trữ.
Tạo một người dùng mới có tên 'hakase' bằng lệnh htpasswd.
Bật mô-đun SSL trên apache và bật svn máy chủ ảo bằng cách chạy các lệnh bên dưới.
Khởi động lại dịch vụ Apache2.
Cấu hình máy chủ ảo cho subversion đã được tạo và người dùng 'hakase' hiện có quyền truy cập để xem và cam kết mã nguồn vào kho lưu trữ 'hakase-project'.
Và bạn sẽ được hiển thị xác thực người dùng cơ bản.
Đăng nhập bằng tên người dùng và mật khẩu 'hakase', bạn sẽ nhận được kho lưu trữ trang trống như bên dưới.
Tạo một thư mục dự án svn-templates mới.
Thêm thư mục mẫu vào kho lưu trữ 'hakase-project' bằng lệnh svn bên dưới.
Bạn sẽ được hỏi về một số điều, hãy thực hiện theo những cách sau.
Kiểm tra 'hakase-project' từ trình duyệt web và bạn sẽ nhận được tất cả thư mục mẫu trên đó.
Đăng nhập vào người dùng không phải root/bình thường.
Sao chép vào Kho lưu trữ 'hakase-project' thư mục cục bộ có tên 'myproject' là người dùng 'hakase'.
Kiểm tra thư mục 'myproject' mới và bạn sẽ nhận được tất cả các mẫu svn.
Tạo một số tệp trên thư mục 'trunk'.
Thêm và xác nhận
Kiểm tra kho lưu trữ từ trình duyệt web và bạn sẽ thấy tất cả các tệp đã được thêm vào kho lưu trữ.
Quá trình cài đặt và cấu hình Apache Subversion trên Ubuntu 18.04 LTS Server đã hoàn tất thành công.
Subversion hay svn được sử dụng rộng rãi cho cộng đồng dự án lớn và nguồn mở như Apache Software Foundation, FreeBSD, GCC, SourceForge, v.v.
Trong bài viết này, tôi sẽ chỉ cho bạn cách thiết lập Apache Subversion bằng máy chủ Ubuntu 18.04 LTS. Chúng tôi sẽ cài đặt và cấu hình phần mềm svn với Apache làm máy chủ web, bật 'xác thực cơ bản' cho người dùng và truy cập an toàn bằng cách sử dụng Letsencrypt SSL để truy cập kho lưu trữ.
Đối với những ai thích GIT, hướng dẫn GIT Ubuntu 18.04 có tại đây.
Điều kiện tiên quyết
- Ubuntu 18.04
- Quyền root
Những việc chúng tôi sẽ làm
- Cài đặt máy chủ web Apache2 trên Ubuntu 18.04
- Cài đặt Apache Subversion (SVN)
- Cấu hình Kho lưu trữ Subversion
- Tạo SSL Letsencrypt cho Ubuntu Apache2
- Cấu hình Máy chủ ảo Subversion trên Apache2
- Kiểm tra
Bước 1 - Cài đặt Máy chủ web Apache2 trên Ubuntu 18.04 LTS
Trong bước đầu tiên này, chúng ta sẽ cài đặt máy chủ web Apache2 và thêm các dịch vụ ssh và HTTP mới vào cấu hình tường lửa ufw.Cài đặt máy chủ web Apache2 bằng lệnh apt bên dưới.
Mã:
sudo apt install apache2 apache2-utils -y
Chạy các lệnh ufw bên dưới.
Mã:
ufw allow ssh
ufw allow http
Mã:
ufw enable
Mã:
systemctl start apache2
systemctl enable apache2
Bước 2 - Cài đặt Apache Subversion (SVN)
Trong hướng dẫn này, chúng ta sẽ cài đặt các gói subversion và svn libapache từ kho lưu trữ Ubuntu chính thức.Cài đặt Subversion bằng lệnh apt bên dưới.
Mã:
sudo apt install subversion subversion-tools libapache2-mod-svn -y
Mã:
svn --version
Bước 3 - Cấu hình kho lưu trữ Subversion
Sau khi cài đặt Subversion, chúng ta sẽ cấu hình thư mục kho lưu trữ Subversion chính. Chúng ta sẽ tạo một thư mục 'svn' mới sẽ được sử dụng để lưu trữ tất cả mã nguồn và kho lưu trữ.Tạo một thư mục chính '/svn' mới.
Mã:
mkdir /svn
Mã:
svnadmin create /svn/hakase-project
Mã:
sudo chown -R apache:apache /svn/hakase-project
Bước 4 - Tạo chứng chỉ SSL Letsencrypt
Trong hướng dẫn này, chúng ta sẽ cấu hình máy chủ svn sử dụng kết nối HTTPS với tên miền có tên 'svn.hakase-labs.io'. Chúng tôi sẽ sử dụng SSL Letsencrypt miễn phí và có thể tạo bằng công cụ certbot.Cài đặt certbot trên máy chủ Ubuntu bằng lệnh yum bên dưới.
Mã:
sudo apt install certbot -y
Chạy lệnh ufw bên dưới.
Mã:
ufw allow https
ufw reload
Mã:
systemctl stop apache2
Tạo SSL Letsencrypt cho tên miền 'svn.hakase-labs.io' bằng lệnh certbot bên dưới.
Mã:
certbot certonly --rsa-key-size 4096 --standalone --agree-tos --no-eff-email --email [emailprotected] -d svn.hakase-labs.io
Bước 5 - Cấu hình Subversion Virtual Host trên Apache2
Trong bước này, chúng ta sẽ tạo cấu hình Apache httpd mới để truy cập svn. Chúng ta sẽ cấu hình kho lưu trữ svn bằng tên miền 'svn.hakase-labs.io' và chỉ những người dùng đã đăng ký mới có thể truy cập bằng xác thực HTTP cơ bản.Đi đến thư mục cấu hình '/etc/apache2'.
Mã:
cd /etc/apache2/
Mã:
cd sites-available/
vim svn.conf
Mã:
ServerName svn.hakase-labs.ioDocumentRoot /var/www/htmlChuyển hướng vĩnh viễn / https://svn.hakase-labs.ioDocumentRoot /var/www/htmlServerName svn.hakase-labs.ioSSLEngine onSSLProtocol all -SSLv2SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOWSSLCertificateFile /etc/letsencrypt/live/svn.hakase-labs.io/fullchain.pemSSLCertificateKeyFile /etc/letsencrypt/live/svn.hakase-labs.io/privkey.pemErrorLog /var/log/apache2/svn_error_logTransferLog /var/log/apache2/svn_access_logLogLevel cảnh báoDAV svnSVNParentPath /svn/AuthType BasicAuthName "Authorization Realm"AuthUserFile /etc/subversion/svn.usersRequire valid-user SSLOptions +StdEnvVarsSetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0CustomLog /var/log/apache2/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
Tiếp theo, chúng ta cần tạo một danh sách người dùng mới có thể xem và cam kết tệp vào kho lưu trữ.
Tạo một người dùng mới có tên 'hakase' bằng lệnh htpasswd.
Mã:
sudo htpasswd -cm /etc/subversion/svn.users hakase
Bật mô-đun SSL trên apache và bật svn máy chủ ảo bằng cách chạy các lệnh bên dưới.
Mã:
sudo a2enmod ssl
sudo a2ensite svn
Mã:
systemctl restart apache2
Cấu hình máy chủ ảo cho subversion đã được tạo và người dùng 'hakase' hiện có quyền truy cập để xem và cam kết mã nguồn vào kho lưu trữ 'hakase-project'.
Bước 6 - Kiểm tra
Xem kho lưu trữ
Mở trình duyệt web của bạn và nhập URL máy chủ, của tôi là URL bên dưới).Và bạn sẽ được hiển thị xác thực người dùng cơ bản.
Đăng nhập bằng tên người dùng và mật khẩu 'hakase', bạn sẽ nhận được kho lưu trữ trang trống như bên dưới.
Nhập dự án vào kho lưu trữ SVN
Bây giờ chúng ta sẽ nhập các mẫu dự án mẫu svn vào kho lưu trữ 'hakase-project'.Tạo một thư mục dự án svn-templates mới.
Mã:
mkdir -p ~/svn-templates/{trunk,branches,tags}
Mã:
svn import -m 'Initial import' ~/svn-templates/ https://svn.hakase-labs.io/repo/hakase-project/ --username hakase
- Nhập 'p' để thêm vĩnh viễn chứng chỉ Letsencrypt.
- Nhập tên người dùng và mật khẩu 'hakase'.
- Và nhập 'yes' để xác nhận về việc lưu mật khẩu chưa mã hóa.
Kiểm tra 'hakase-project' từ trình duyệt web và bạn sẽ nhận được tất cả thư mục mẫu trên đó.
Sao chép Kho lưu trữ
Sau khi tạo và tải lên thư mục mẫu svn, chúng tôi sẽ thử sao chép kho lưu trữ vào môi trường cục bộ.Đăng nhập vào người dùng không phải root/bình thường.
Mã:
useradd -m -s /bin/bash misaka
su - misaka
Mã:
svn co https://svn.hakase-labs.io/repo/hakase-project/ ~/myproject --username hakase
Kiểm tra thư mục 'myproject' mới và bạn sẽ nhận được tất cả các mẫu svn.
Mã:
tree ~/myproject
Cam kết mã nguồn
Đi tới thư mục 'myproject'.
Mã:
cd myproject/
Mã:
echo 'đây là kho lưu trữ của tôi' > trunk/test-hakase.txt
echo 'đây là kho lưu trữ của tôi01' > trunk/test-hakase01.txt
echo 'đây là repo02 của tôi' > trunk/test-hakase02.txt
Mã:
svn add trunk/* --username hakase
svn commit -m 'new file added' --username hakase
Kiểm tra kho lưu trữ từ trình duyệt web và bạn sẽ thấy tất cả các tệp đã được thêm vào kho lưu trữ.
Quá trình cài đặt và cấu hình Apache Subversion trên Ubuntu 18.04 LTS Server đã hoàn tất thành công.