实现网页访问
1. 安装httpd
安装httpd服务:
$ sudo yum install httpd
检查httpd是否安装成功:
$ httpd -versionServer version: Apache/2.4.6 (CentOS)Server built: Jul 18 2016 15:30:14
2. 安装svnserve
安装svnserve服务:
$ sudo yum install subversion
检查svnserve是否安装成功:
$ svnserve --versionsvnserve, 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/www/svn$ sudo svnadmin create /var/www/svn/spring-hello-world$ ll /var/www/svn/drwxr-xr-x. 6 root root 80 Nov 10 14:42 spring-hello-world$ ll /var/www/svn/spring-hello-world/drwxr-xr-x. 2 root root 51 Nov 10 14:42 confdrwxr-sr-x. 6 root root 4096 Nov 10 14:42 db-r--r--r--. 1 root root 2 Nov 10 14:42 formatdrwxr-xr-x. 2 root root 4096 Nov 10 14:42 hooksdrwxr-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/www/svn/spring-hello-world/
创建用户文件passwd:
$ sudo touch /var/www/svn/passwd #创建用户文件$ sudo htpasswd /var/www/svn/passwd admin #创建用户admin$ sudo htpasswd /var/www/svn/passwd guest #创建用户guest$ cat /var/www/svn/passwd admin:$apr1$UCkPzZ2x$tnDk2rgZoiaURPzO2e57t0guest:$apr1$vX1RIUq6$OKS1bqKZSptzsPDYUOJ5x.
创建权限文件authz:
$ sudo cp /var/www/svn/spring-hello-world/conf/authz /var/www/svn/authz$ cat /var/www/svn/authz [/]admin = rwguest = r
6. 配置httpd
$ sudo touch /etc/httpd/conf.d/subversion.conf$ cat /etc/httpd/conf.d/subversion.confDAV svn SVNParentPath /var/www/svn AuthType Basic AuthName "Authorization SVN" AuthzSVNAccessFile /var/www/svn/authz AuthUserFile /var/www/svn/passwd Require valid-user
7. 启动httpd服务
$ sudo systemctl start httpd.service svnserve -d -r /var/www/svn/ ###只要没有报错就可以,为了保险ps aux | grep svn 能看到后台程序 7.1、记住/var/www/svn/目录下面的authz和passwd文件是所有仓库的验证文件,在仓库下面的conf目录下的authz、passswd密码文件不用动即可, 但是需要配置仓库下面的conf目录的senserve.conf仓库主配置文件,里面指定authz、passwd文件的绝对路径,和开启anon-access两个即可
客户端使用http://192.168.12.59/svn/spring-hello-world就可以访问刚才建立的svn仓库了。 如果返回403错误,可能是防火墙问题。增加防火墙规则:
$ sudo firewall-cmd --permanent --add-service=http$ sudo firewall-cmd --permanent --add-service=https$ sudo firewall-cmd --reload 7.2、思路整理: 1、URL路径不对:看看仓库的位置和你填写的是否一致,只需要在ip后面写仓库名字即可 2、无权限下载或提交:就去全局配置里面的authz、passwd文件仔细检查, 在apahce+svn配合模式下passwd下的文件需要加密生成的用户密码,明文是不允许且读取不到的 3、提交或者访问超时等:防火墙开了没,centos7增加了firewalld的如果还安装了iptables那就都需要关闭,看端口、后台程序是否都在!