Centso+Apache+Subversion+Jsvnadmin的管理环境搭建,我以前还做过Github的环境GitLab之安装-yellowcong
1、Apache安装
1.1安装
# 安装 httpd
yum install httpd httpd-devel
#启动服务
service httpd start
#设置开机启动
chkconfig httpd on
#查看是否开机启动
systemctl list-unit-files |grep httpd
1.2配置端口和ServerName
设定端口号、配置ServerName,因为没有dns服务配置 ,所以需要修改 这个ServerName
#修改配置文件
vi /etc/httpd/conf/httpd.conf
#配置ServerName
Servername localhost:80
修改后
1.3开启80端口
如果发现没有iptables这个文件,就说明iptables没有安装,可以查看我的iptables安装的教程,http://blog.csdn.net/yelllowcong/article/details/78229862,安装完了,在执行下面的操作
#编辑iptables
vim /etc/sysconfig/iptables
#开放80端口
-A INPUT -p tcp -m tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
#重启服务
restart iptables.service
#查看80端口是否开放
iptables -L -n
1.4服务器查
在浏览器中,输入ip地址,查看apache服务是否启动
2、SVN安装
2.1安装 subversion
subversion,需要安装依赖的模块 mod、dev、sun
#安装subversion
yum install mod_dav_svn subversion
#安装完成后,需要重启 apache服务
service httpd restart
2.2查看subversion是否安装(有问题)
#查看是否安装好了这些模块
ls /etc/httpd/modules/ | grep svn
#查看svn的版本
svn --version
/etc/httpd/modules/目录下的svn模块
版本信息
2.3创建库
创建svn的库,用于存放代码,这个库在配置过程中会用到
mkdir /svn
2.4配置subversion.conf
#进入到配置文件目录
vim /etc/httpd/conf.d/subversion.conf
#添加下面的到subversion.conf 文件中
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn/> //多库的模式
DAV svn
SVNListParentPath on
SVNParentPath /svn //这个表示 存储的地址
AuthType Basic
AuthName "Authorization"
AuthUserFile /svn/passwd.http //用户授权
AuthzSVNAccessFile /svn/authz //访问控制
Require valid-user
</Location>
RedirectMatch ^(/svn)$ $1/
#创建用户授权和访问控制空文件
touch /svn/passwd.http
touch /svn/authz
##重启apache服务
service httpd restart
通过“http://localhost/svn/” 来访问仓库列表,如果想让“http://localhost/svn”也起作用的话,需要在的后面增加重定向的设置:RedirectMatch ^(/svn) 1/ ,当然也可以采用RewriteEngine之类的办法。
服务启动成功
3、jsvnadmin安装
安装jsvadmin前,需要安装tomcat,如果不会的,可以查看教程:http://blog.csdn.net/yelllowcong/article/details/75944304
3.1下载安装包
#下载安装包, 这个安装包是我从外国网站下的,真不容易啊
wget http://yellowcong.qiniudn.com/svnadmin-3.0.5.zip
#解压到指定的文件夹
unzip svnadmin-3.0.5.zip -d svnadmin
#删除包
rm svnadmin-3.0.5.zip
解压后的目录结构,我们需要里面的svnadmin.war包
3.2安装war包
#停止tomcat,然后解压war包
unzip svnadmin.war -d svnadmin
#删除war包
rm svnadmin.war
war包解压后的目录结构,我们需要修改的是WEB-INF目录下的jdbc.properties这个文件
3.3配置jdbc.properties
配置数据库端口,数据库,数据库用户名和密码
db=MySQL
#MySQL
MySQL.jdbc.driver=com.mysql.jdbc.Driver
MySQL.jdbc.url=jdbc:mysql://127.0.0.1:3306/svnadmin?characterEncoding=utf-8
MySQL.jdbc.username=root
MySQL.jdbc.password=root
3.4导入表
Mysql如果不会安装,可以查看我的教程,http://blog.csdn.net/yelllowcong/article/details/75934201
需要导入脚本db/mysql5.sql 和db/lang/en.sql
#创建数据库,一定要是utf8的,不然,会后悔的,会遇后面的错误
create database if not exists svnadmin default character set utf8;
#使用数据库
use svnadmin
#导入数据
source /usr/local/svnadmin/db/mysql5.sql
source /usr/local/svnadmin/db/lang/en.sql
#查看表
show tables
导入数据
查看表数据
4、启动Tomcat
#启动服务
./startup.sh
#查看日志信息
tail -f -n 100 logs/catalina.out
常见错误
服务器打开xx:port/svnadmin,居然报错了,尴尬了
发生错误,请联系 QQ 56099823 或 报告一个Issue,以下是错误信息:
org.apache.jasper.JasperException: An exception occurred processing JSP page /login.jsp at line 28 25: } 26: %> 27: 28: 29:
查看tomcat的日志文件,发现,大概可以定位成,是数据库的编码问题导致的。
java.sql.SQLException: Incorrect string value: '\xE4\xB8\xAD\xE6\x96\x87' for column 'lbl' at row 1
解决方法
重新导入数据库,使用utf8的编码,问题就解决了
#创建数据库,一定要是utf8的,不然,会后悔的,会遇后面的错误
create database if not exists svnadmin default character set utf8;
#使用数据库
use svnadmin
#导入数据
source /usr/local/svnadmin/db/mysql5.sql
source /usr/local/svnadmin/db/lang/en.sql
问题完美解决