不只是單純的使用Subversion進(jìn)行版本控制 胚委,而是要使得版本控制能靈活方便地進(jìn)行管理
方案: CentOS + Subversion + Apache + Jsvnadmin
SVN? 版本管理系統(tǒng)的安裝
CI? 服務(wù)器: 192.168.4.221
root? 用戶(hù)操作
建議 安裝前 更 新操作系統(tǒng)
# yum update
更新完成后重啟
# reboot
安裝 裝? apache
# yum install httpd httpd-devel
# service httpd start
# chkconfig httpd on
# vi /etc/httpd/conf/httpd.conf
找到 ServerName 并修改成
ServerName localhost:80
防火墻中打開(kāi) 80 端口:
# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# service iptables restart
http://192.168.4.221/
查看測(cè)試是否安裝 svn 模塊
#? ls /etc/httpd/modules/ | grep svn
mod_authz_svn.so
mod_dav_svn.so
#? svn? -- version
創(chuàng)建 svn 庫(kù)主目錄(多庫(kù)模式酒贬,一份配置文件管理多個(gè)庫(kù))
# mkdir /svn/
# cd /etc/httpd/conf.d
# ls
此時(shí)可以看到一個(gè) subversion.conf 配置文件(是在安裝 mod_dav_svn 模塊時(shí)生成的)
# vi subversion.conf
添加以下內(nèi)容
#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/
創(chuàng)建/svn/passwd.http 和/svn/authz
# touch /svn/passwd.http
# touch /svn/authz
重啟 apache
# service httpd restart
安裝? jsvnadmin
svnadmin 介紹
(在 Google Code 上工扎,需要 FQ 才能下載。我們也會(huì)把最新版的 jsvnadmin 放到群共享中)
https://code.google.com/p/jsvnadmin/
https://jsvnadmin.googlecode.com/files/svnadmin-3.0.5.zip
安裝? MySQL ( 單獨(dú) 安裝茬缩, 與 業(yè) 務(wù) 系統(tǒng)的數(shù)據(jù)庫(kù)分開(kāi))
# rpm -qa | grep mysql ## 查看該操作系統(tǒng)上是否已經(jīng)安裝了 mysql 數(shù)據(jù)庫(kù)择卦,
有的話(huà),可以通過(guò) rpm -e 命令 或者 rpm -e --nodeps 命令來(lái)卸載掉
# yum install mysql-server mysql mysql-devel
# service mysqld start
# chkconfig --list | grep mysqld
mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off
用上面的命令查看到 MySQL 并沒(méi)有設(shè)置開(kāi)機(jī)啟動(dòng)醉鳖,所以需要設(shè)置開(kāi)機(jī)啟動(dòng)
# chkconfig mysqld on
為了方便遠(yuǎn)程管理捡硅,防火墻中打開(kāi) 3306 端口
# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
重啟防火墻,使端口配置生效
# service iptables restart
設(shè)置 MySQL 數(shù)據(jù)庫(kù) root 用戶(hù)的密碼:
# mysqladmin -u root password '123456'
登錄數(shù)據(jù)庫(kù):
# mysql -u root -p
MySQL 授權(quán)遠(yuǎn)程訪問(wèn)(先用 root 登錄 mysql)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH
GRANT OPTION;
mysql> FLUSH PRIVILEGES;
使用? Tomcat7? 部署? svnadmin
# cd /root
使用 wget 下載最新版的 tomcat7 的 tar.gz 包
# tar -zxvf apache-tomcat-7.0.xx.tar.gz
# mv apache-tomcat-7.0.xx svnadmin-tomcat
修改 Tomcat 的端口為 9000 和容器編碼為 UTF-8
# vi /root/svnadmin-tomcat/conf/server.xml
修改以下標(biāo)紅的內(nèi)容
connectionTimeout="20000"
redirectPort="8443"URIEncoding="UTF-8"/>
防火墻中打開(kāi) 9000 端口
# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
重啟防火墻辐棒,使端口配置生效
# service iptables restart
# cd /root/svnadmin-tomcat/webapps
# rm -rf *
上傳 svnadmin.war 到/root/svnadmin-tomcat/webapps 目錄
# cd /root/svnadmin-tomcat/webapps
解壓
# unzip svnadmin.war -d svnadmin
備份
# mv svnadmin.war /root/tools/
# cd svnadmin/WEB-INF
# vi jdbc.properties
內(nèi)容改為如下
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=123456
創(chuàng)建? svnadmin? 數(shù)據(jù)庫(kù)并導(dǎo)入相應(yīng)數(shù)據(jù) ( UTF-8? 編碼 )
執(zhí)行 db/mysql5.sql 和 db/lang/en.sql
啟動(dòng) svnadmin-tomcat
# /root/svnadmin-tomcat/bin/startup.sh
瀏覽器中打開(kāi):http://192.168.4.221:9000/svnadmin/
如:輸入 admin病曾,123456
創(chuàng)建庫(kù)
此時(shí):
/svn/目錄下會(huì)創(chuàng)建一個(gè) wusc_edu 的 SVN 庫(kù)目錄牍蜂。
同 時(shí) 也 會(huì) 多 出 一 個(gè) httpd.conf 文 件 , 內(nèi) 容 與 subversion.conf 一 樣 泰涂, 在
/etc/httpd/conf.d/subversion.conf 中已配置鲫竞。
/svn/authz 授權(quán)文件中會(huì)多出如下內(nèi)容:
[aliases]
[groups]
wusc_edu_developer=
wusc_edu_manager=
wusc_edu_tester=
[wusc_edu:/]
@wusc_edu_manager=rw
以上過(guò)程其實(shí)是調(diào)用了 svn 對(duì)應(yīng)的命令做了相應(yīng)的操作
配置庫(kù)目錄權(quán)限
# cd /svn
# chown -R apache.apache wusc_edu
# chmod -R 777 wusc_edu
(如創(chuàng)建新庫(kù),需要對(duì)新建的庫(kù)目錄執(zhí)行以上兩步授權(quán)操作)
關(guān)閉 SELinux(Linux 的訪問(wèn)控制)
修改/etc/selinux/config 文件
# vi /etc/selinux/config
將 SELINUX=enforcing 改為 SELINUX=disabled
重啟機(jī)器即可
# reboot
SVN? 版本管理平臺(tái)(Subversion+Apache+Jsvnadmin)的使用:
先安裝 SVN 管理客戶(hù)端 TortoiseSVN逼蒙,方便對(duì) SVN 庫(kù)的操作和管理
http://tortoisesvn.net/downloads.html
(注意 64 位系統(tǒng)要安裝 64 位版)
接下來(lái)可以對(duì) wusc_edu 庫(kù)進(jìn)行相應(yīng)的操作
(1) 用戶(hù)組
(2) 用戶(hù)
(3) 授權(quán)
(4) 導(dǎo)入項(xiàng)目