轉至:https://www.jianshu.com/p/a0af00642585
採用方案html
Linux+Apache+Subversion+MySQL+JDK+Tomcat+Svnadminjava
目錄
0.安裝準備mysql
0.1 升級系統軟件包
0.2 關閉SELinux
0.3 安裝wgetlinux
1.部署Apacheweb
1.1 安裝apache
1.2 修改配置文件
1.3 啓動apache服務
1.4 調整防火牆,容許80端口訪問
1.5 瀏覽器訪問測試sql
2.部署Subversion數據庫
2.1 安裝SVN
2.2 重啓apache服務
2.3 檢查svn模塊是否安裝上了apache
2.4 查看svn版本
2.5 配置SVN倉庫apache
2.5.1 建立SVN庫主目錄
2.5.2 編輯配置文件subversion.conf
2.5.3 建立/data/svn/passwd.http和/svn/authz文件
2.5.4 重啓apache服務bootstrap
3.部署MySQLvim
3.1 安裝MySQL
3.2 mysql開機自動啓動
3.3 啓動mysql服務
3.4 調整防火牆,容許3306端口訪問
3.5 設置mysql數據庫的root用戶密碼
4.部署Tomcat
4.1 安裝JDK
4.1.1 下載安裝包
4.1.2 解壓軟件包
4.1.3 修改環境變量
4.1.4 使配置當即生效
4.1.5 檢驗是否生效
4.2 安裝Tomcat
4.2.1 下載安裝包
4.2.2 解壓縮apache-tomcat軟件包
4.2.3 修改tomcat的配置文件
4.2.4 調整防火牆,容許8080端口被訪問
4.2.5 重啓防火牆,使端口配置生效
5.部署jsvnadmin
5.1 刪除tomcat/webapps目錄中的默認文件
5.2 下載svnadmin軟件包
5.3 解壓縮svnadmin軟件包
5.4 將svnadmin.war解壓到tomcat/webapps的svnadmin目錄中
5.5 修改svnadmin的jdbc屬性文件中鏈接mysql的默認帳戶密碼
6.初始化svnadmin的數據庫
6.1 建立svnadmin數據庫
6.2 導入sql文件(mysql5.sql 和en.sql )
6.3 啓動tomcat服務
7.瀏覽器訪問,初始化配置
8.補充部分
8.1 查看新增目錄、文件,及authz配置參數
8.2 配置倉庫的目錄權限
8.3 配置rc.local讓tomcat開機自動啓動服務
8.4 權限千米中「認證失敗」的問題
場景
互聯網小型公司剛開始啓動項目的時候,通常只有一個項目,這個時候,只須要在服務器上部署單庫的SVN提供服務便可知足需求,運維人員剛開始只須要在命令行手動配置倉庫,新人入職改改passwd和authz配置文件添加帳號和權限就能搞定,但隨着公司的日益發展壯大,研發隊伍愈來愈壯大,人數愈來愈多,項目模塊化,分佈式,SOA服務化,多項目同時研發、測試、發佈上線等等,運維人員忙的不可開交,舊法子已經徹底不能知足需求了,怎麼辦呢?本着高效率工做,多玩耍的思想,運維人員要尋求更快更便捷的方法來解決問題,那麼必定是服務化的方法了,經過WEB UI的方式管理,點點鼠標能夠輕鬆搞定。
Jsvnadmin的出現,就改變了以往純命令行或腳本的原始化方法,它是一個 Java 開發的管理 Svn 服務器的項目用戶的 web 應用。安裝好 Svn 服務器端好,把 Svn Admin 部署好,就能夠經過 web 瀏覽器管理 Svn 的項目,管理項目的用戶,管理項目的權限。使得管理配置 Svn 簡便,不再須要每次都到服務器手工修改配置文件。
svnadmin優勢
多數據庫: Svn 項目配置數據保存在數據庫,支持全部數據庫(默認MySQL/Oracle/SQL Server)
多操做系統:支持 Window,Linux 等操做系統。
權限控制:管理員能夠隨意分配權限、項目管理員能夠管理項目成員、成員只能查看和修改本身的密碼。
支持多項目、多用戶、多用戶組 Group(默認帶有「項目管理組」、 「項目開發組」、 「項目測試組」)。
安全:密碼加密保存。
多協議:支持 svn 協議和 http 協議(從 2.0 開始支持 Apache 服務器- - 單庫方式,從 3.0開始支持 Apache 多庫方式)
倉庫瀏覽(從 3.0.2 開始)
多語言(從 3.0.2 開始)
解決方案
Svnadmin 在 Java 1.六、 Tomcat 六、 Subversion 1.六、 MySQL 5.一、 Apache 2.二、Windows 7 上開發測試經過,同時支持其餘操做系統和數據庫。
常採用的方案:
Linux+Apache+Subversion+MySQL+Tomcat+Svnadmin
Windows+Apache+Subversion+MySQL+Tomcat+Svnadmin
支持 svn 協議
Svn 的配置信息都在倉庫目錄的 conf 下的 authz,passwd,svnserve.conf 三個文件中,配置用戶和權限都是經過修改 passwd 和 authz,馬上就生效。 Svn Admin 的本質是對這 3個文件進行管理,全部成員、權限的數據都保存在數據庫中, 一旦在Svn Admin 的頁面上修改,就會把配置信息輸出到 conf 下的那 3 個配置文件中。
支持 http 協議
Apache+SVN 配置成功後能夠有兩種方式:
多庫方式: SVNParentPath 指定一個父目錄,全部倉庫在這個父目錄下,使用一個密碼文件和一個權限配置文件。優勢是增長刪除倉庫不須要改 apache的 httpd.conf,不須要重啓 Apache。缺點是項目多會很混亂。
單庫方式: SVNPath 每一個倉庫單獨配置各自的密碼和權限文件。優勢是各自分開,互相不影響,維護方便。缺點是增長或刪除倉庫須要修改 apache 的httpd.conf 後重啓。
0.安裝準備
OS:CentOS6.8 x64
0.1 升級系統軟件包
[root@example00 ~]# yum -y update
0.2 關閉SELinux
[root@example00 ~]# vim /etc/sysconfig/selinux
SELINUX=disabled
0.3 安裝wget
[root@example00 ~]# yum -y install wget
準備工做作完之後,reboot命令重啓服務器
1.部署Apache
1.1 安裝apache
[root@example00 ~]# yum -y install httpd httpd-devel
1.2 修改配置文件
[root@example00 ~]# vim /etc/httpd/conf/httpd.conf
276 ServerName localhost:80
1.3 啓動apache服務
開機自動啓動
[root@example00 ~]# chkconfig httpd on
啓動apache服務
[root@example00 ~]# service httpd start
1.4 調整防火牆,容許80端口訪問
[root@example00 ~]# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
[root@example00 ~]# service iptables restart
1.5 瀏覽器訪問:http://192.168.1.190
出現apache的歡迎頁面
apache歡迎頁面
2.部署Subversion
2.1 安裝SVN
[root@example00 ~]# yum -y install subversion mod_dav_svn
2.2 重啓apache服務
[root@example00 ~]# service httpd restart
2.3 檢查svn模塊是否安裝上了apache
[root@example00 ~]# ls /etc/httpd/modules/ | grep svn
mod_authz_svn.so
mod_dav_svn.so
2.4 查看svn版本
[root@example00 ~]# svn --version
svn, version 1.6.11 (r934486)
compiled Aug 17 2015, 08:37:43
2.5 配置SVN倉庫
2.5.1 建立SVN庫主目錄
多庫模式,一份配置文件管理多個庫
[root@example00 ~]# mkdir -p /data/svn #
2.5.2 編輯配置文件subversion.conf
[root@example00 ~]# cd /etc/httpd/conf.d/
[root@example00 conf.d]# ls
README subversion.conf welcome.conf
[root@example00 conf.d]# vim subversion.conf
#Include /data/svn/httpd.conf
DAV svn
SVNListParentPath on
SVNParentPath /data/svn
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile /data/svn/passwd.http
AuthzSVNAccessFile /data/svn/authz
Require valid-user
RedirectMatch ^(/svn)$ $1/
2.5.3 建立/data/svn/passwd.http和/svn/authz文件
[root@example00 conf.d]# touch /data/svn/passwd.http
[root@example00 conf.d]# touch /data/svn/authz
2.5.4 重啓apache服務
[root@example00 conf.d]# service httpd restart
3.部署MySQL
3.1 安裝MySQL
[root@example00 ~]# yum -y install mysql-server mysql mysql-devel
3.2 mysql開機自動啓動
[root@example00 ~]# chkconfig mysqld on
3.3 啓動mysql服務
[root@example00 ~]# service mysqld start
3.4 調整防火牆,容許3306端口訪問
[root@example00 ~]# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
[root@example00 ~]# service iptables restart
3.5 設置mysql數據庫的root用戶密碼
[root@example00 ~]# mysqladmin -u root password 'mypassword'
3.5 受權root帳戶遠程訪問mysql
[root@example00 conf.d]# mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
4.部署Tomcat
4.1 安裝JDK
下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
4.1.1 下載安裝包
[root@example00 ~]# cd /usr/local/src/
[root@example00 src]# wget http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz
4.1.2 解壓軟件包
[root@example00 src]# tar -zxvf jdk-8u121-linux-x64.tar.gz -C /usr/local/
[root@example00 src]# cd /usr/local/jdk1.8.0_121/
[root@example00 jdk1.8.0_121]# pwd
/usr/local/jdk1.8.0_121
4.1.3 修改環境變量
[root@example00 ~]# vim /etc/profile
# Java_Home
JAVA_HOME=/usr/local/jdk1.8.0_121
JRE_HOME=/usr/local/jdk1.8.0_121/jre
PATH=\(PATH:\)JAVA_HOME/bin:\(JRE_HOME/bin CLASSPATH=:\)JAVA_HOME/lib/dt.jar:\(JAVA_HOME/lib/tools.jar:\)JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
4.1.4 使配置當即生效
[root@example00 ~]# source /etc/profile
4.1.5 檢驗是否生效
方法1:
[root@example00 ~]# java -version
java version "1.7.0_131"
OpenJDK Runtime Environment (rhel-2.6.9.0.el6_8-x86_64 u131-b00)
OpenJDK 64-Bit Server VM (build 24.131-b00, mixed mode)
方法2:
[root@example00 ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/jdk1.8.0_121/bin:/usr/local/jdk1.8.0_121/jre/bin:/root/bin
[root@example00 ~]# echo $JRE_HOME
/usr/local/jdk1.8.0_121/jre
[root@example00 ~]# echo $JAVA_HOME
/usr/local/jdk1.8.0_121
4.2 安裝Tomcat
下載地址:http://tomcat.apache.org/download-70.cgi
找到Core中tar.gz,右鍵複製連接
4.2.1 下載安裝包
[root@example00 ~]# cd /usr/local/src/
[root@example00 src]# wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.76/bin/apache-tomcat-7.0.76.tar.gz
4.2.2 解壓縮apache-tomcat軟件包
[root@example00 src]# tar -zxvf apache-tomcat-7.0.76.tar.gz -C /usr/local/
[root@example00 src]# cd /usr/local/
[root@example00 local]# mv apache-tomcat-7.0.76/ tomcat
4.2.3 修改tomcat的配置文件
末尾增長URIEncoding參數爲UTF-8
[root@example00 src]# vim /usr/local/src/svnadmin-tomcat/conf/server.xml
22
71 <Connector port="8080" protocol="HTTP/1.1"
72 connectionTimeout="20000"
73 redirectPort="8443" URIEncoding="UTF-8"/>
4.2.4 調整防火牆,容許8080端口被訪問
[root@example00 src]# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
4.2.5 重啓防火牆,使端口配置生效
[root@example00 src]# service iptables restart
5.安裝jsvnadmin
下載連接
https://code.google.com/archive/p/jsvnadmin/
https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/jsvnadmin/svnadmin-3.0.5.zip
5.1 刪除tomcat/webapps目錄中的默認文件
[root@example00 ~]# rm -rf /usr/local/tomcat/webapps/*
5.2 下載svnadmin軟件包
[root@example00 ~]# cd /usr/local/src/
[root@example00 webapps]# wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/jsvnadmin/svnadmin-3.0.5.zip
5.3 解壓縮svnadmin軟件包
[root@example00 src]# unzip svnadmin-3.0.5.zip -d svnadmin
[root@example00 src]# cd svnadmin
5.4 將svnadmin.war解壓到tomcat/webapps的svnadmin目錄中
[root@example00 svnadmin]# unzip svnadmin.war -d /usr/local/tomcat/webapps/svnadmin
5.5 修改svnadmin的jdbc屬性文件中鏈接mysql的默認帳戶密碼
[root@example00 svnadmin]# vim /usr/local/tomcat/webapps/svnadmin/WEB-INF/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=mypassword
6.初始化svnadmin的數據庫
6.1 建立svnadmin數據庫
[root@example00 ~]# mysql -u root -p
mysql> CREATE DATABASE svnadmin CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| svnadmin |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql> exit
Bye
6.2 導入sql文件(mysql5.sql 和en.sql )
[root@example00 svnadmin]# mysql -u root -p svnadmin < /usr/local/src/svnadmin/db/mysql5.sql
[root@example00 svnadmin]# mysql -u root -p svnadmin < /usr/local/src/svnadmin/db/lang/en.sql
6.3 啓動tomcat服務
[root@example00 ~]# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/jdk1.8.0_121/jre
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
7.瀏覽器訪問,初始化配置
瀏覽器訪問:http://192.168.1.190:8080/svnadmin/
頁面提示:歡迎使用SVN ADMIN,第一次使用請設置管理員賬號和密碼.
輸入帳號/密碼,即爲svnadmin的默認WEB登陸帳號密碼,須要保存起來,以避免忘記。
SVN ADMIN初始化頁面
在SVN ADMIN的WEB頁面中,能夠看到項目管理的相關配置,改變了以往Linux Server上經過命令行管理svn的繁瑣歷史,而使用WEB GUI的配置方式,能夠大大提升SVN倉庫的管理效率;
在SVN ADMIN的WEB頁面上不只能夠新建項目的SVN倉庫,還能夠針對不一樣的項目,進行帳戶、帳戶組的配置、權限的管理,很是適合中等型,或小型互聯網公司進行管理;
建立庫.png
提交成功
8.補充部分
8.1 查看新增目錄、文件,及authz配置參數
[root@example00 ~]# cd /data/svn/
[root@example00 svn]# ls
authz project1 httpd.conf passwd.http
/data/svn目錄中,已經產生了一個目錄ddstore,和一個文件httpd.conf,它與subversion.conf是同樣的,在/etc/httpd/conf.d/subversion.conf中已配置。
[root@example00 svn]# cat authz
[aliases]
[groups]
ddstore_developer=
ddstore_manager=
ddstore_tester=
[ddstore:/]
@ddstore_manager=rw
查看authz文件,能夠發現,已經被添加了配置內容;這些改變,都是由於調用了svn作了相應的操做。
8.2 配置倉庫的目錄權限
[root@example00 ~]# chown -R apache.apache /data/svn/project1/
[root@example00 ~]# chmod -R 777 /data/svn/project1/
8.3 配置rc.local讓tomcat開機自動啓動服務
[root@example00 ~]# vim /etc/rc.local
#tomcat auto start
/usr/local/tomcat/bin/startup.sh
8.4 權限千米中「認證失敗」的問題
緣由:沒有把admin加入項目的manager組中,所以進入權限管理中後,會出現認證失敗的問題;
解決方法:設置用戶組--->設置用戶--->將admin添加到管理組
全部的部署過程已經完成,那麼咱們須要在SVN ADMIN管理頁面中,查看倉庫的狀態,點擊倉庫URL連接,查看倉庫的狀態;若無任何錯誤信息,即表示倉庫配置成功,如有報錯,例如405信息等等,那麼說明倉庫的配置是有問題的,若您嘗試屢次解決無果,能夠聯繫我,我有空的時候能夠協助你troubleshouting。
點擊倉庫URL連接
查看倉庫狀態