1. 程式人生 > >CentOS7:安裝SVN+http訪問

CentOS7:安裝SVN+http訪問

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 Nov 
20 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