建议安装前更新操作系统
# yum update
更新完成后重启
# reboot
安装apache
# yum install httpd httpd-devel
启动apache
# service httpd start
设置apache开机启动
# chkconfig httpd on
修改apache配置信息
# vim /etc/httpd/conf/httpd.conf
找到ServerName并修改成
ServerName localhost:80
防火墙中打开80端口
# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
重启防火墙
# service iptables restart
添加阿里云入方向安全组规则
测试是否安装成功
http://xxx.xxx.xxx.xxx/
安装svn服务
cd /etc/httpd/conf
安装mod_dav_svn模块
# yum install mod_dav_svn subversion
安装完成后可以在/etc/httpd/conf.modules.d/下可以看到有一个10-subversion.conf文件
安装完svn后需要重启apache
# service httpd restart
查看测试是否安装svn模块
# ls /etc/httpd/modules/ | grep svn
如果出现mod_authz_svn.so和mod_dav_svn.so两个文件,说明安装成功
查看svn安装版本
# svn --version
创建svn库主目录(多库模式:一份配置文件管理多个库)
# mkdir /svn/
编辑上面安装mod_dav_svn模块时生成的/etc/httpd/conf.modules.d/10-subversion.conf文件
添加如下内容:
#Include /svn/httpd.conf
DAV svn
SVNListParentPath on
SVNParentPath /svn
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile /svn/passwd.http
AuthzSVNAccessFile /svn/authz
Require valid-user
RedirectMatch ^(/svn)$ $1/
创建/svn/passwd.http和/svn/authz
# touch /svn/passwd.http
# touch /svn/authz
重启apache
# service httpd restart
使用tomcat部署svnadmin
我这里已经下载好了tomcat
# tar -zxvf apache-tomcat-8.0.53.tar.gz
更名
mv apache-tomcat-8.0.53 svnadmin-tomcat
修改tomcat端口
删除掉webapps下无用的文件
/root/tengjs/svnadmin-tomcat/webapps
# rm -rf *
防火墙中打开9000端口
# vim /etc/sysconfig/iptables
添加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
重启防火墙,使端口生效
# service iptables restart
配置阿里云服务器入方向安全组规则
我这里使用的是svnadmin-3.0.5,解压后如下图所示
将svnadmin.war拷贝到svnadmin-tomcat/webapps
解压
# unzip svnadmin.war -d svnadmin
war这时就可以删除了
# rm svnadmin.war
进入cd svnadmin/WEB-INF
编辑jdbc.properties
# vim jdbc.properties
内容修改为
db=MySQL
#MySQL
MySQL.jdbc.driver=com.mysql.jdbc.Driver
MySQL.jdbc.url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/svnadmin?characterEncoding=utf-8
MySQL.jdbc.username=xxx
MySQL.jdbc.password=xxx
在db文件夹下有一个mysql5.sql脚本文件,以及在db/lang/下有一个en.sql脚本文件
将这两个脚本文件在svnadmin数据库中执行
ok,进入/root/tengjs/svnadmin-tomcat/bin目录下执行startup.sh,在浏览器中输入http://xxx.xxx.xxx.xxx:9000/svnadmin
第一次需要设置管理员账号和密码
进入之后就可以看到如下界面
创建库
点击提交后
这时进入到/svn/目录下可以看到创建了一个名为dubbo_study的svn库目录,同时也会多出一个httpd.conf文件,内容和/etc/httpd/conf.modules.d/10-subversion.conf文件一样
进入dubbo_study目录
进入conf
如果svn配置的是单库的话,理论上用户以及权限等都是使用上面三个文件来控制的,现在我们在apache中安装了svn模块,那么apache接管了这些控制。
另外/svn/下的authz文件多出了如下内容
以上过程其实是调用了svn对应的命令做了相应的操作
配置库目录权限
点击URL对应的连接
可以看到这里为认证失败的状态
设置用户组
选择admin,点击增加用户
设置完成之后返现这里依然是认证失败的状态
这就涉及到库目录权限的问题
进入/svn/
可以看到dubbo_study库的拥有者为root用户,但是现在我们已经用apache将svn进行了整合,那么当前的操作都是通过apache来操作的
vim vim /etc/httpd/conf/httpd.conf
可以看到apache的用户为apache,用户组也是apache
那么我们需要将dubbo_study库的操作用户从root用户改为apache用户
# chown -R apache.apache dubbo_study
授权(所有用户都有读写的权限)
# chmod -R 777 dubbo_study
如果以后创建新库,需要对新建的库目录执行以上两步操作
除了权限问题,还需要关闭SELinux(Linux的访问控制),否则会和svn的目录访问有冲突
修改/etc/selinux/config
# vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
重启之后重新进入svn管控台
ok,大功告成!
可以参照我之前的文章《linux环境安装dubbo管控台》将svn管控台设置为开机启动