# 1、安装 ```bash yum -y install subversion httpd mod_dav_svn; mkdir -p /data/svn/repo1; svnadmin create /data/svn/repo1; chown -R apache.apache /data/svn/repo1; touch /data/svn/repo1/passwd; #touch /data/svn/repo1/authz; ``` ```bash svn --version svn, version 1.7.14 (r1542130) compiled Apr 11 2018, 02:40:28 ``` # 2、配置httpd ```bash # 默认配置文件,默认端口修改 /etc/httpd/conf/httpd.conf ``` ```bash vi /etc/httpd/conf.d/subversion.conf ``` ```toml LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so DAV svn SVNPath /data/svn/repo1/ AuthType Basic AuthName "Authorization Realm" AuthUserFile /data/svn/repo1/passwd AuthzSVNAccessFile /data/svn/repo1/conf/authz Require valid-user ``` ```bash systemctl enable httpd systemctl start httpd ``` # 3、启动 ```bash svnserve -d -r /data/svn/repo1 ``` ```bash # 配置文件在 vi /data/svn/repo1/conf/svnserve.conf ``` # 4、创建用户 ```bash vi /data/svn/repo1/authz ``` ```toml [aliases] [groups] admin=admin [/] @admin=rw ``` ```bash htpasswd -n admin htpasswd -b /data/svn/repo1/passwd test 123456 ``` # 5、异常 ```log [Tue Jan 08 12:58:38.222816 2019] [authn_file:error] [pid 4975] (13)Permission denied: [client 127.0.0.1:37458] AH01620: Could not open password file: /data/svn/repo1/passwd ``` ```bash chown -R apache:apache /data/svn/repo1/passwd chmod 0666 /data/svn/repo1/passwd chcon -R -h -t httpd_sys_content_t /data/svn/repo1 ``` # 6、nginx配置 ```nginx location /svn { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 65; proxy_send_timeout 65; proxy_read_timeout 65; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_pass http://127.0.0.1:8080/svn; } ``` # 7、注意 ```shell #两个密码文件格式不一样 /data/svn/repo1/passwd #httpd Auth使用,使用htpasswd加密产生 /data/svn/repo1/conf/passwd #svnserve使用,密码为明文 ```