1,svn服务器有2种运行方式:独立服务器和借助apache运行。svnadmin就是借助apache运行,所以在安装svnadmin之前,需要安装httpd;而svnadmin运行在web服务器,还要安装tomcat服务器;svnadmin的用户数据保存在数据库,因此还需要数据库。
2,首先安装httpd服务:
(1),安装apache:
yum install httpd -y
(2),安装完成后可以通过如下命令查看是否安装成功:
httpd -version
(3),修改httpd服务名称:
vim /etc/httpd/conf/httpd.conf
(4),httpd服务启动:
service httpd start
(5),查看是否启动成功(访问):
http://ip:port/
能打开下面这个页面表示httpd服务启动成功了。
3,安装svn模型:
(1),在安装svn模型之前先关掉httpd服务:
service httpd stop
(2),安装svn模型:
yum install mod_dav_svn subversion -y
(3),查看svn模型是否安装:
svnserve --version
(4),在/etc/httpd/modules/ 查看是否多出两个模型文件:
ls /etc/httpd/modules/ | grep svn
(5),创建svn仓库主目录(目录自定义):
mkdir -p /usr/local/svn
(6),在/etc/httpd/conf.modules.d/下可以看到有一个10-subversion.conf文件
(7),编辑10-subversion.conf文件:
#Include /usr/local/svn/httpd.conf |
(8),准备数据库
4,安装svnadmin:
(1),下载(国外网站):https://code.google.com/archive/p/jsvnadmin/downloads
(2),修改tomcat的字符编码(否则svn页面操作无法输入中文): tomcat小编提前安装在了/usr/local/目录下
vim /usr/local/tomcat8.0/conf/server.xml
URIEncoding="UTF-8"
(3),解压:svnadmin-3.0.5.zip 到/usr/local/目录下:
unzip svnadmin-3.0.5.zip -d svnadmin
(4),在/usr/local/svnadmin/目录(解压文件夹有一个svnadmin.war文件):
cp /usr/local/svnadmin/svnadmin.war /usr/local/tomcat8.0/webapps/
(5),解压svnadmin.war文件:
unzip svnadmin.war -d svnadmin
(6),修改svnadmin的数据库信息:
vim /usr/local/tomcat8.0/webapps/svnadmin/WEB-INF/jdbc.properties
(7), 创建数据库:
create database svnadmin default charset utf8 collate utf8_general_ci;
##在创建数据库一定要加后面这一段(default charset utf8 collate utf8_general_ci):否则还是中文问题
(8),在svnadmin数据库需要执行基本的sql脚本文件:在 /usr/local/svnadmin/db/目录有
mysql5.sql、oracle10g.sql、sqlserver2000.sql
## 在 /usr/local/svnadmin/db/lang/目录有:en.sql
source /usr/local/svnadmin/db/mysql5.sql;
source /usr/local/svnadmin/db/lang/en.sql;
注意:如果是mysql就执行:mysql5.sql和en.sql文件;如果是oralce就执行:oracle10g.sql和en.sql文件 ...
5,下面分别启动httpd服务和tomcat服务进行测试:
(1),启动服务:
service httpd start
/usr/local/tomcat8.0/bin/startup.sh
(2),访问:能访问到下面的页面表示svnadmin安装成功。
http://ip:port/svnadmin
第一次需要设置管理员账号和密码:自定义管理员账号和密码
(3),创建仓库:
创建成功后页面:
打开连接:
添加用户:
添加后就有权限了:
如果是老版本的话当前用户还是没有权限的:是因为/usr/local/svn/test目录的权限属于:root用户,而apache用户组管理的apache用户没有操作这个目录的权限,我们只需要将该目录权限赋值给apache:如果以后创建新库,需要对新建的库目录执行相同操作即可。
chown -R apache.apache test
除了权限问题,还需要关闭SELinux(Linux的访问控制,一定要在局域网里关闭此权限,否则非常危险,相当于裸奔。),否则会和svn的目录访问有冲突:
vim /etc/selinux/config
内容为:SELINUX=disabled
重启机器即可,重启httpd服务和tomcat服务,这时就有权限了。