Apache Subversion hay SVN là phần mềm kiểm soát phiên bản và sửa đổi mã nguồn mở do Apache Software Foundation phát triển. Phần mềm 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 được nhiều nhà phát triển phần mềm và dự án mã nguồn mở như Apache Software Foundation, FreeBSD, GCC và SourceForge sử dụng.
Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách thiết lập Apache Subversion trên máy chủ CentOS 7 mới nhất. Chúng tôi cài đặt và cấu hình phần mềm svn với Apache làm máy chủ web, bảo mật bằng Let's encrypt và kích hoạt "Xác thực cơ bản" cho người dùng.
Cài đặt Apache httpd 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ụ HTTP vào danh sách dịch vụ firewalld.
Chạy lệnh firewall-cmd bên dưới.
Bây giờ hãy khởi động dịch vụ httpd và thêm dịch vụ này để khởi động khi khởi động.
Apache httpd đang hoạt động trên máy chủ.
Cài đặt Subversion và tất cả các gói cần thiết bằng lệnh yum bên dưới.
Chờ cho đến khi tất cả các gói được cài đặt xong, sau đó kiểm tra phiên bản svn.
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 là '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.
Lưu ý:
Bổ sung cho người dùng SELinux, hãy chạy các lệnh bên dưới.
Cài đặt certbot trên máy chủ CentOS bằng lệnh yum bên dưới.
Khi quá trình 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ụ firewalld.
Chạy các lệnh firewalld 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 Chứng chỉ SSL Letsencrypt cho tên miền 'svn.hakase-labs.io' bằng lệnh certbot bên dưới.
Bây giờ bạn sẽ nhận được các tệp chứng chỉ trên thư mục '/etc/letsencrypt/live'.
Đi đến thư mục '/etc/httpd/conf.d' và tạo cấu hình svn mới 'svn.conf'.
Dán cấu hình bên dưới.
Lưu tệp và thoát khỏi trình chỉnh sửa.
Tiếp theo, chúng ta cần tạo 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 người dùng mới có tên 'hakase' bằng lệnh htpasswd bên dưới.
Bây giờ hãy khởi động lại dịch vụ Apache httpd.
Người dùng 'hakase' hiện có quyền xem và cam kết mã nguồn vào kho lưu trữ 'hakase-project'.
Và bạn sẽ thấy lời nhắc 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', và sau đây là kết quả.
Tạo một thư mục dự án svn-templates mới.
Thêm tất cả thư mục mẫu vào kho lưu trữ 'hakase-project' bằng lệnh svn bên dưới.
Bây giờ bạn sẽ được hỏi những điều 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 đó.
Tạo người dùng bình thường mới và đăng nhập vào người dùng đó.
Sao chép kho lưu trữ 'hakase-project' vào thư mục cục bộ có tên 'myproject' dưới dạng người dùng 'hakase'.
Và bạn sẽ được hỏi lại về những điều đó bên dưới.
Và khi hoàn tất, hãy 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 với HTTPS Letsencrypt trên CentOS 7 đã hoàn tất thành công.
Subversion được nhiều nhà phát triển phần mềm và dự án mã nguồn mở như Apache Software Foundation, FreeBSD, GCC và SourceForge sử dụng.
Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách thiết lập Apache Subversion trên máy chủ CentOS 7 mới nhất. Chúng tôi cài đặt và cấu hình phần mềm svn với Apache làm máy chủ web, bảo mật bằng Let's encrypt và kích hoạt "Xác thực cơ bản" cho người dùng.
Điều kiện tiên quyết
- Máy chủ CentOS 7
- Quyền root
Những việc chúng tôi sẽ làm
- Cài đặt Apache Httpd trên CentOS 7
- Cài đặt Subversion
- Cấu hình kho lưu trữ Subversion
- Tạo SSL Letsencrypt cho CentOS Apache Httpd
- Cấu hình máy chủ ảo Subversion trên Apache Httpd
- Kiểm tra
Bước 1 - Cài đặt Apache Httpd trên CentOS 7
Bước đầu tiên trong hướng dẫn này là cài đặt các gói Apache httpd trên hệ thống của bạn.Cài đặt Apache httpd bằng lệnh yum bên dưới.
Mã:
yum -y install httpd httpd-tools mod_ssl
Chạy lệnh firewall-cmd bên dưới.
Mã:
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload
Mã:
systemctl start httpd
systemctl enable httpd
Bước 2 - Cài đặt Apache Subversion (SVN)
Trong hướng dẫn này, chúng tôi sẽ cài đặt các gói subversion từ kho lưu trữ CentOS 7 cơ sở.Cài đặt Subversion và tất cả các gói cần thiết bằng lệnh yum bên dưới.
Mã:
yum -y install subversion subversion-tools mod_dav_svn
Mã:
svn --version
Bước 3 - Cấu hình Kho lưu trữ Subversion (SVN)
Sau khi cài đặt Subversion, chúng tôi cấu hình máy chủ chính thư mục kho lưu trữ subversion. Chúng ta sẽ tạo một thư mục 'svn' mới, nơi 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
Lưu ý:
Bổ sung cho người dùng SELinux, hãy chạy các lệnh bên dưới.
Mã:
chcon -R -t httpd_sys_content_t /svn/hakase-project
chcon -R -t httpd_sys_rw_content_t /svn/hakase-project
Bước 4 - Tạo chứng chỉ SSL Let's encrypt cho Apache
Trong hướng dẫn này, chúng tôi 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 chứng chỉ SSL Let's encrypt miễn phí có thể được tạo bằng công cụ certbot.Cài đặt certbot trên máy chủ CentOS bằng lệnh yum bên dưới.
Mã:
yum -y install certbot
Chạy các lệnh firewalld bên dưới.
Mã:
firewall-cmd --add-service=https --zone=public --permanent
firewall-cmd --reload
Mã:
systemctl stop httpd
Tạo Chứng chỉ 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 Apache Httpd
Trong bước này, chúng ta sẽ tạo cấu hình Apache httpd mới cho quyền 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 cơ bản HTTP.Đi đến thư mục '/etc/httpd/conf.d' và tạo cấu hình svn mới 'svn.conf'.
Mã:
cd /etc/httpd/conf.d/
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 logs/svn_error_logTransferLog logs/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 logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
Tiếp theo, chúng ta cần tạo 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 người dùng mới có tên 'hakase' bằng lệnh htpasswd bên dưới.
Mã:
sudo htpasswd -cm /etc/subversion/svn.users hakase
Mã:
systemctl restart httpd
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 này: https://svn.hakase-labs.io/repo/hakase-project/Và bạn sẽ thấy lời nhắc 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', và sau đây là kết quả.
Nhập dự án vào kho lưu trữ
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 ta muốn sao chép hoặc lưu trữ vào môi trường cục bộ.Tạo người dùng bình thường mới và đăng nhập vào người dùng đó.
Mã:
useradd -m -s /bin/bash misaka
su - misaka
Mã:
svn co https://svn.hakase-labs.io/repo/hakase-project/ ~/myproject --username hakase
- Nhập 'p' để thêm vĩnh viễn chứng chỉ Letsencrypt.
- Nhập 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.
Và khi hoàn tất, hãy 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ã hoặc Tài liệu
Đi tới thư mục 'myproject'.
Mã:
cd myproject/
Mã:
echo 'this is my repo' > trunk/test-hakase.txt
echo 'this is my repo01' > 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 'tệp mới được thêm vào' --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 với HTTPS Letsencrypt trên CentOS 7 đã hoàn tất thành công.