CentOS7:安裝SVN+http訪問
阿新 • • 發佈:2019-01-30
1. 安裝httpd
安裝httpd服務:
$ sudo yum install httpd
檢查httpd是否安裝成功:
$ httpd -version Server version: Apache/2.4.6 (CentOS) Server built: Jul 18 2016 15:30:14
2. 安裝svnserve
安裝svnserve服務:
$ sudo yum install subversion
檢查svnserve是否安裝成功:
$ svnserve --version svnserve, version 1.7.14 (r1542130) compiled Nov20 2015, 19:25:09
3. 按住mod_dav_svn
mod_dav_svn是apache伺服器訪問svn的一個模組。通過yum安裝:
$ sudo yum install mod_dav_svn
安裝成功後,會有mod_dav_svn.so和mod_authz_svn.so兩個檔案。
$ sudo find / -name mod_dav_svn.so /usr/lib64/httpd/modules/mod_dav_svn.so $ sudo find / -name mod_authz_svn.so /usr/lib64/httpd/modules/mod_authz_svn.so
4. 建立svn倉庫
$ sudo mkdir /var/svn $ sudo svnadmin create /var/svn/spring-hello-world $ ll /var/svn/ drwxr-xr-x. 6 root root 80 Nov 10 14:42 spring-hello-world $ ll /var/svn/Project/ drwxr-xr-x. 2 root root 51 Nov 10 14:42 conf drwxr-sr-x. 6 root root 4096 Nov 10 14:42 db -r--r--r--. 1 root root 2 Nov 10 14:42 format drwxr-xr-x. 2 root root 4096 Nov 10 14:42 hooks drwxr-xr-x. 2 root root 39 Nov 10 14:42 locks -rw-r--r--. 1 root root 229 Nov 10 14:42 README.txt
5. 配置許可權
修改svn倉庫的使用者組為apache:
$ sudo chown -R apache:apache /var/svn/Project/
建立使用者檔案passwd:
$ sudo touch /var/svn/passwd #建立使用者檔案 $ sudo htpasswd /var/svn/passwd admin #建立使用者admin $ sudo htpasswd /var/svn/passwd guest #建立使用者guest $ cat /var/svn/passwd admin:$apr1$UCkPzZ2x$tnDk2rgZoiaURPzO2e57t0 guest:$apr1$vX1RIUq6$OKS1bqKZSptzsPDYUOJ5x.
建立許可權檔案authz:
$ sudo cp /var/svn/Project/conf/authz /var/svn/authz $ cat /var/svn/authz [/] admin = rw guest = r
6. 配置httpd
$ sudo touch /etc/httpd/conf.d/subversion.conf $ cat /etc/httpd/conf.d/subversion.conf <Location /svn> DAV svn SVNParentPath /var/svn AuthType Basic AuthName "Authorization SVN" AuthzSVNAccessFile /var/svn/authz AuthUserFile /var/svn/passwd Require valid-user </Location>
7. 啟動httpd服務
$ sudo systemctl start httpd.service
客戶端使用http://IP/svn/Project就可以訪問剛才建立的svn倉庫了。 如果返回403錯誤,可能是防火牆問題。增加防火牆規則:
$ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=https $ sudo firewall-cmd --reload