CentOs7.7+apache+svn+jsvnadmin 搭建HTTP版本SVN(最全,个人摘录)
我的环境
Centos7.7+mysql5.6.40(mysql版本不限制)
开始安装前先把操作系统的防火墙关闭
# systemctl stop firewalld.service
以及selinux设置为disabled
# vi /etc/selinux/config
SELINUX=disabled
改完后重启机器
话不多说,直接开始,跟着一步一步往下操作,绝对ojbk!
一、开始安装apache
# yum install httpd
开启apache服务(Centos7 开启服务换成了systemctl 命令)
# systemctl start httpd
查看apache是否启动
# systemctl status httpd
[root@localhost Aitsvn]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2020-04-30 18:04:54 CST; 36min ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 2814 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
Main PID: 2820 (httpd)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
CGroup: /system.slice/httpd.service
├─2820 /usr/sbin/httpd -DFOREGROUND
├─2821 /usr/sbin/httpd -DFOREGROUND
├─2822 /usr/sbin/httpd -DFOREGROUND
├─2823 /usr/sbin/httpd -DFOREGROUND
├─2824 /usr/sbin/httpd -DFOREGROUND
└─2825 /usr/sbin/httpd -DFOREGROUND
Apr 30 18:04:54 localhost systemd[1]: Starting The Apache HTTP Server...
Apr 30 18:04:54 localhost httpd[2820]: [Thu Apr 30 18:04:54.289490 2020] [s...ng
Apr 30 18:04:54 localhost httpd[2820]: [Thu Apr 30 18:04:54.289591 2020] [s...ng
Apr 30 18:04:54 localhost systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
设置开机自自动apache服务
# systemctl enable httpd
(取消开机自自动 systemctl disable httpd)
修改 /etc/httpd/conf/httpd.conf 文件
# vim /etc/httpd/conf/httpd.conf
找到ServerName 并修改成
ServerName localhost:80
然后重启下httpd
systemctl restart httpd
完成操作之后可以在浏览器输入你的服务器IP,可以看到Testing 123.. 几个字的状态 说明apache启动成功!
二、开始安装mysql
检查系统是否安装其他版本的MYSQL数据
#yum list installed | grep mysql
#yum -y remove mysql-libs.x86_64
安装及配置
# wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
# rpm -ivh mysql-community-release-el6-5.noarch.rpm
# yum repolist all | grep mysql
安装MYSQL数据库
# yum install mysql-community-server -y
设置为开机启动(2、3、4都是on代表开机自动启动)
# chkconfig --list | grep mysqld
# chkconfig mysqld on
设置远程root,启动mysql
# service mysqld start
# mysql_secure_installation
登陆root账号
# mysql -uroot -p
建立远程root用户
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你设置的密码' WITH GRANT OPTION;
mysql> flush privileges;
重启mysqld服务:
# service mysqld restart
三、安装SVN服务
# yum install mod_dav_svn subversion
必须安装mod_dav_svn模块
查看测试是否安装svn模块
# ls /etc/httpd/modules/ | grep svn
[root@localhost Aitsvn]# ls /etc/httpd/modules/ | grep svn
mod_authz_svn.so
mod_dav_svn.so
查看svn的版本信息
[root@localhost Aitsvn]# svn --version
svn, version 1.7.14 (r1542130)
compiled Apr 11 2018, 02:40:28
Copyright (C) 2013 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/
The following repository access (RA) modules are available:
* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
- handles 'http' scheme
- handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
- with Cyrus SASL authentication
- handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
- handles 'file' scheme
安装完svn后要重新加载下apache
#systemctl reload httpd
至此SVN 安装完成!
下面是配置创建使用svn:
创建Aitsvn库主目录(多库模式,一份配置文件管理多个库)
# mkdir -p /data/svn/Aitsvn
# chown -R apache:apache /data/svn/Aitsvn
# chmod -R 777 /data/svn/Aitsvn
进入 /etc/httpd/conf.d 目录
#cd /etc/httpd/conf.d
#ls
如果此目录下没有subversion.conf配置文件的话自己添加(我这里是没有的,所以自己创建)
#vim subversion.conf
把以下内容复制进去 (vim操作 按esc键 输入:wq! 保存退出)
#Include /svn/httpd.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /data/svn/Aitsvn/>
DAV svn
SVNListParentPath on
SVNParentPath /data/svn/Aitsvn
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile /data/svn/Aitsvn/passwd.http
AuthzSVNAccessFile /data/svn/Aitsvn/authz
Require valid-user
</Location>
RedirectMatch ^(/data/svn/Aitsvn)$ $1/
切换cd到/data/svn/Aitsvn 目录下并创建passwd.http 和authz文件
#touch passwd.http
#touch authz
#chmod -R 777 passwd.http authz
此处两个文件是为了svnadmin后续调用验证的,创建好就行了。
修改svn配置文件
[root@localhost svn]# vi /etc/sysconfig/svnserve
OPTIONS="-r /data/svn/Aitsvn"
四、安装tomcat和jsvnadmin
jsvnadmin就是一个web项目
那么首先要安装tomcat 我用的是apache-tomcat-8.5.54.tar.gz 安装在/usr/local/tools目录下面
windows下下载好之后,使用winscp工具上传到你的系统环境内,解压
#tar -zxvf apache-tomcat-8.5.54.tar.gz
重命名
#mv apache-tomcat-8.5.54 svn-tomcat
再进入svn-tomcat的conf文件夹修改访问端口(我使用的是90端口,避免端口被占用)
[root@localhost conf]# vim server.xml
<Connector port="90" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
改好之后退出,然后切换到webapps且删除webapps下的所有内容
#cd /usr/local/tools/svn-tomcat/webapps
#rm -rf *
下载svnadmin-3.0.5.zip,我用的这个版本,请在前面到我网盘连接下,下载好传到你的环境内放在root目录里。
然后解压查看并把svnadmin.war移到/usr/local/tools/svn-tomcat/webapps/目录内再次解压:
[root@localhost ~]# unzip svnadmin-3.0.5.zip
[root@localhost ~]# ls
db svnadmin-javadoc.jar svnadmin-sources.jar
log.log SvnAdmin_Manual_zh_CN.pdf svnadmin.war
[root@localhost ~]# cp svnadmin.war /usr/local/tools/svn-tomcat/webapps/
[root@localhost ~]# cd /usr/local/tools/svn-tomcat/webapps/
[root@localhost webapps]#unzip svnadmin.war -d svnadmin
编辑jdbc配置文件:
[root@localhost webapps]# cd svnadmin/WEB-INF
[root@localhost WEB-INF]# vim 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=你的数据库密码
jdbc.properties内其它文字删除。
到此步已经配置好svnadmin的相关文件了。
四、安装jdk(tomcat运行需要jdk环境)
jdk软件包:jdk-8u251-linux-x64.rpm(我百度网盘下载然后传到你的root根目录下)
执行:
[root@localhost ~]# rpm -ivh jdk-8u251-linux-x64.rpm
配置环境变量,在最后一行添加以下内容:
[root@localhost ~]# vi /etc/profile
JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
export CLASSPATH JAVA_HOME
保存退出,刷新下环境,查看版本:
[root@localhost ~]# source /etc/profile
[root@localhost ~]# java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)
到这里jdk环境就安装好了 ,我们启动tomcat
[root@localhost ~]# /usr/local/tools/svn-tomcat/bin/startup.sh
Using CATALINA_BASE: /usr/local/tools/svn-tomcat
Using CATALINA_HOME: /usr/local/tools/svn-tomcat
Using CATALINA_TMPDIR: /usr/local/tools/svn-tomcat/temp
Using JRE_HOME: /usr/java/jdk1.8.0_251-amd64
Using CLASSPATH: /usr/local/tools/svn-tomcat/bin/bootstrap.jar:/usr/local/tools/svn-tomcat/bin/tomcat-juli.jar
Tomcat started.
至此!tomcat启动完成!
五、jsvnadmin的数据库导入
进入之前 svnadmin-3.0.5.zip解压后的db文件,
[root@localhost Svnadmin]# cd db
[root@localhost db]# ls
lang mysql5.sql oracle10g.sql sqlserver2000.sql update
我们需要把mysql5.sql和lang/en.sql导入。
创建数据库svnadmin
mysql> CREATE DATABASE `svnadmin` CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> use svnadmin;
mysql> source mysql5.sql;
mysql> source en.sql
注意数据库编码必须为UTF-8,否则会报404错误!
再给svn-tomcat加个开机启动
#vim /etc/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
/usr/local/tools/svn-tomcat/bin/startup.sh
完成工作之后重启tomcat、httpd、mysql、
[root@localhost db]#/usr/local/tools/svn-tomcat/bin/shutdown.sh
[root@localhost db]#/usr/local/tools/svn-tomcat/bin/startup.sh
[root@localhost db]#service httpd restart
[root@localhost db]#service mysqld restart
服务启动OK后,访问:
http://ip地址:90/svnadmin
第一次登录,提示让你输入账号密码!
登录进去后创建项目:ceshi
路径:/data/svn/Aitsvn/ 选择(http多库)
URl:http://ip地址/data/svn/Aitsvn/ceshi
然后提交就可以了
你去查看服务器的目录/data/svn/Aitsvn/下面会多出来一个ceshi文件,这就是你的项目库!
给ceshi项目赋予apache.apache权限
# cd /data/svn/Aitsvn/
# chown -R apache.apache ceshi
# chmod -R 777 ceshi
(如创建新库,需要对新建的库目录执行以上两步授权操作)