持續整合篇之SVN版本管理系統的安裝(CentOS+Subversion+Apache+Jsvnadmin)
安裝apache
# yum install httpd httpd-devel
# service httpd start
# chkconfig httpd on
# vi /etc/httpd/conf/httpd.conf
找到ServerName 並修改成
ServerName localhost:80
防火牆中開啟80埠:
# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW-m tcp -p tcp --dport 80 -j ACCEPT
# service iptables restart
安裝SVN服務
# yum install mod_dav_svn subversion
必須安裝mod_dav_svn模組
安裝完svn後要重啟apache
# service httpd restart
檢視測試是否安裝svn模組
# ls /etc/httpd/modules/ | grep svn
mod_authz_svn.so
mod_dav_svn.so
# svn --version
建立svn庫主目錄(多庫模式,一份配置檔案管理多個庫)
# mkdir /svn/
# cd /etc/httpd/conf.d
# ls
此時可以看到一個subversion.conf配置檔案(是在安裝mod_dav_svn
# vi subversion.conf
新增以下內容
#Include /svn/httpd.conf
<Location /svn/>
DAV svn
SVNListParentPath on
SVNParentPath /svn
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile /svn/passwd.http
AuthzSVNAccessFile /svn/authz
Require valid-user
</Location>
RedirectMatch ^(/svn)$ $1/
建立/svn/passwd.http和/svn/authz
# touch /svn/passwd.http
# touch /svn/authz
重啟apache
# service httpd restart
安裝jsvnadmin
svnadmin介紹
https://jsvnadmin.googlecode.com/files/svnadmin-3.0.5.zip
CSDN地址的下載
# rpm -qa | grep MySQL ## 檢視該作業系統上是否已經安裝了mysql資料庫,
有的話,可以通過 rpm -e 命令 或者rpm -e --nodeps 命令來解除安裝掉
# yum installmysql-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並沒有設定開機啟動,所以需要設定開機啟動
# chkconfig mysqld on
為了方便遠端管理,防火牆中開啟3306埠
#
-A INPUT -m state --state NEW-m tcp -p tcp --dport 3306 -j ACCEPT
重啟防火牆,使埠配置生效
# service iptables restart
設定MySQL資料庫root使用者的密碼:
# mysqladmin -uroot password 'root'
登入資料庫:
# mysql -u root -p
MySQL授權遠端訪問(先用root登入mysql)
mysql> GRANT ALLPRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'wusc.321' WITH GRANT OPTION;
mysql> FLUSHPRIVILEGES;
使用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
修改以下標紅的內容
<Server port="9005"shutdown="SHUTDOWN">
<Connector port="9000"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
防火牆中開啟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
解壓
# unzipsvnadmin.war -d svnadmin
備份
# mv svnadmin.war/root/tools/
# cdsvnadmin/WEB-INF
# vijdbc.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=123456
建立svnadmin資料庫並匯入相應資料(UTF-8編碼)
執行db/mysql5.sql 和db/lang/en.sql
啟動svnadmin-tomcat
# /root/svnadmin-tomcat/bin/startup.sh
如:輸入admin,wusc.123
建立庫
此時:
/svn/目錄下會建立一個wusc_edu的SVN庫目錄。
同時也會多出一個httpd.conf檔案,內容與subversion.conf一樣,在/etc/httpd/conf.d/subversion.conf中已配置。
/svn/authz 授權檔案中會多出如下內容:
[aliases]
[groups]
wusc_edu_developer=
wusc_edu_manager=
wusc_edu_tester=
[wusc_edu:/]
@wusc_edu_manager=rw
以上過程其實是呼叫了svn對應的命令做了相應的操作
記得將登入的Admin賬號,加入新建立的svn專案,不然會出現認證失敗的提示。
配置庫目錄許可權
# cd /svn
# chown -R apache.apache wusc_edu
# chmod -R 777 wusc_edu
(如建立新庫,需要對新建的庫目錄執行以上兩步授權操作)
關閉SELinux(Linux的訪問控制)
修改/etc/selinux/config 檔案
# vi /etc/selinux/config
將SELINUX=enforcing改為SELINUX=disabled
重啟機器即可
# reboot