1、在伺服器上安裝配置SVN服務;
2、配置SVN服務同時支援Apache的http和svnserve獨立伺服器兩種模式通路;
3、Apache的http和svnserve獨立伺服器兩種模式使用相同的通路權限賬号。
具體操作:
一、關閉SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注釋掉
#SELINUXTYPE=targeted #注釋掉
SELINUX=disabled #增加
:wq! #儲存退出
setenforce 0 #使配置立即生效
二、開啟防火牆端口
系統運維 www.osyunwei.com 溫馨提醒:系統運維原創内容版權所有,轉載請注明出處及原文連結
基于Apache的http模式,預設端口為80
基于svnserve的獨立伺服器模式,預設端口為3690
vi /etc/sysconfig/iptables #編輯防火牆配置檔案
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
service iptables restart #最後重新開機防火牆使配置生效
三、安裝Apache
yum install httpd apr apr-util httpd-devel #安裝Apache
yum install mod_dav_svn mod_auth_mysql #安裝基于Apache的http模式通路的支援子產品
chkconfig httpd on #設定開機啟動
service httpd start #啟動Apache
httpd -version #檢視Apache版本資訊
cd /etc/httpd/modules/
#檢視是否有mod_dav_svn.so和mod_authz_svn.so子產品,如果有,說明mod_dav_svn安裝成功!
#mod_auth_mysql子產品是用資料庫存儲賬号資訊,本次教程沒有涉及,可以不安裝!
注意:如果Apache啟動之後提示錯誤:
httpd:httpd: Could not reliably determine the server's fully qualif domain name, using ::1 for ServerName
解決辦法:
vi /etc/httpd/conf/httpd.conf #編輯
ServerName www.example.com:80 #去掉前面的注釋
四、安裝SVN
yum install subversion #使用yum指令線上安裝
svnserve --version #檢視svn版本資訊
五、配置SVN
1、建立svn版本庫
mkdir -p /home/svn #建立svn版本庫存放目錄
cd /home/svn #進入目錄
svnadmin create /home/svn/project1 #建立svn版本庫project1
svnadmin create /home/svn/project2 #建立svn版本庫project2
svnadmin create /home/svn/project3 #建立svn版本庫project3
2、設定配置檔案
mkdir -p /home/svn/conf #建立配置檔案目錄
cp /home/svn/project1/conf/passwd /home/svn/conf/passwd #拷貝賬号密碼配置檔案模闆
cp /home/svn/project1/conf/authz /home/svn/conf/authz #拷貝目錄權限配置檔案模闆
cp /home/svn/project1/conf/passwd /home/svn/conf/svnserve.conf #拷貝全局配置檔案模闆
vi /home/svn/conf/passwd #編輯,添加以下代碼
[users]
# harry = harryssecret
# sally = sallyssecret
osyunwei=123456
osyunwei1=123456
osyunwei2=123456
osyunwei3=123456
vi /home/svn/conf/authz #編輯,添加以下代碼
[groups]
admin = osyunwei
project1 = osyunwei1
project2 = osyunwei2
project3 = osyunwei3
[/]
@admin = rw
* =
[project1:/]
@project1 = rw
[project2:/]
@project2 = rw
[project3:/]
@project3 = rw
vi /home/svn/conf/svnserve.conf #配置全局檔案,在最後添加以下代碼
[general]
anon-access=none #禁止匿名通路,設定為none。預設為read,參數:read,write,none
auth-access=write #授權使用者寫權限
password-db=/home/svn/conf/passwd #使用者賬号密碼檔案路徑,可以寫絕對路徑
authz-db=/home/svn/conf/authz #通路控制權限檔案路徑,可以寫絕對路徑
realm=svn #每個SVN項目的認證命,會在認證提示裡顯示,建議寫項目名稱。
3、啟動SVN
svnserve -d -r /home/svn --config-file /home/svn/conf/svnserve.conf --listen-port 3690
#--config-file後面跟全局配置參數檔案
ps -ef|grep svn|grep -v grep #檢視程序
netstat -ln |grep 3690 #檢查端口
killall svnserve #關閉svn
4、設定svn服務開機啟動
vi /etc/init.d/svn #編輯,添加以下代碼
#!/bin/sh
# chkconfig: 2345 85 85
# processname: svn
svn_bin=/usr/local/svn/bin
svn_port=3690
svn_home=/home/svn
svn_config=/home/svn/conf/svnserve.conf
if [ ! -f "$svn_bin/svnserve" ]
then
echo "svnserver startup: cannot start"
exit
fi
case "$1" in
start)
echo "Starting svnserve..."
$svn_bin/svnserve -d -r $svn_home --config-file $svn_config --listen-port $svn_port
echo "Successfully!"
;;
stop)
echo "Stoping svnserve..."
killall svnserve
restart)
$0 stop
$0 start
*)
echo "Usage: svn { start | stop | restart } "
exit 1
esac
chmod +x /etc/init.d/svn #添加執行權限
chkconfig svn on #開機自啟動
service svn start #啟動
六、配置svn支援http通路
1、建立賬号密碼認證檔案
htpasswd -cm /home/svn/conf/http_passwd osyunwei
htpasswd -m /home/svn/conf/http_passwd osyunwei1
htpasswd -m /home/svn/conf/http_passwd osyunwei2
htpasswd -m /home/svn/conf/http_passwd osyunwei3
根據提示輸入2次密碼即可。
注意:
/home/svn/conf/目錄下面passwd檔案是svnserve獨立伺服器使用的認證檔案,密碼沒有加密,明文顯示。
/home/svn/conf/目錄下面http_passwd檔案是Apache的http模式使用的認證檔案,密碼使用MD5加密。
passwd和http_passwd檔案中,賬号密碼必須設定相同。
2、設定Apache配置檔案
vi /etc/httpd/conf.d/subversion.conf #編輯,在最後添加以下代碼
<Location /svn>
DAV svn
#SVNPath /home/svn
SVNParentPath /home/svn
# # Limit write permission to list of valid users.
# <LimitExcept GET PROPFIND OPTIONS REPORT>
# # Require SSL connection for password protection.
# # SSLRequireSSL
#
AuthType Basic
AuthName "Authorization SVN"
AuthzSVNAccessFile /home/svn/conf/authz
AuthUserFile /home/svn/conf/http_passwd
Require valid-user
# </LimitExcept>
</Location>
3、設定目錄權限
chown apache:apache /home/svn -R #設定svn目錄所有者為Apache服務運作賬号apache
4、重新開機Apache服務
service httpd restart #重新開機
七、測試svn
Windows下安裝svn用戶端TortoiseSVN。
TortoiseSVN下載下傳位址:http://tortoisesvn.net/downloads.html
安裝完成之後,桌面-右鍵單擊,選擇TortoiseSVN-版本庫浏覽器

URL輸入:svn://192.168.21.134/project1
使用者名:osyunwei1
密碼:123456
勾選:儲存認證
确定
可以進入project1版本庫目錄,右鍵單擊之後,可以選擇建立檔案夾等操作。
URL輸入:http://192.168.21.134/svn/project1
使用者名和密碼跟上面一樣,可以進入project1版本庫目錄,右鍵單擊之後,可以選擇建立檔案夾等操作。
project1通路:
svn://192.168.21.134/project1
http://192.168.21.134/svn/project1
project2通路:
svn://192.168.21.134/project2
http://192.168.21.134/svn/project2
使用者名:osyunwei2
project3通路:
svn://192.168.21.134/project3 #svnserve獨立伺服器模式
http://192.168.21.134/svn/project3 #Apache的http模式
使用者名:osyunwei3
擴充閱讀:
1、Apache htpasswd指令選項參數說明
-c 建立一個加密檔案
-n 不更新加密檔案,隻将apache htpasswd指令加密後的使用者名密碼顯示在螢幕上
-m 預設apache htpassswd指令采用MD5算法對密碼進行加密
-d apache htpassswd指令采用CRYPT算法對密碼進行加密
-p apache htpassswd指令不對密碼進行進行加密,即明文密碼
-s apache htpassswd指令采用SHA算法對密碼進行加密
-b 在apache htpassswd指令行中一并輸入使用者名和密碼而不是根據提示輸入密碼
-D 删除指定的使用者
2、SVNPath 與 SVNParentPath差別:
SVNParentPath:支援多個相同父目錄的SVN版本庫。
SVNPath:隻支援一個主目錄的SVN版本庫,如果在主目錄下面建新項目,則提示無權通路。
至此,Linux下SVN伺服器同時支援Apache的http和svnserve獨立伺服器兩種模式且使用相同的通路權限賬号教程完成。
=========下面是支援https通路的配置,在上面的基礎上再繼續操作即可===========
1. https服務之前,通過查閱相關資料得知,需要通過申請建立伺服器證書才可以正
常實作功能,是以需要使用yum指令安裝申請證書所需要的軟體包。
#yum install mod_ssl openssl
2. 開始進行證書的申請工作
#cd /etc/pki/tls/private
#openssl genrsa -out ca.key 1024
#openssl req -new -key ca.key -out ca.csr
(以上兩步為産生證書的私鑰與
CSR)
#cd /etc/pki/tls/certs
#openssl x509 -req -days 365 -in /etc/pki/tls/private/ca.csr -signkey /etc/pki/tls/private/ca.key -out ca.crt
(為産生自我簽署的金鑰) (以上步驟必須在特定檔案夾下産生所需的檔案,保證輸入指令正确,保證産生檔案所在檔案夾正确,否則後面将發生錯誤) 在執行上面3步過程中,會要求對你申請的證書進行基本的資訊填寫,按要求填寫。
3. 修改apache ssl檔案
#vi /etc/httpd/conf.d/ssl.conf
進入檔案,修改金鑰以及金鑰憑證正确路徑(此路徑即為上步生成的兩個檔案路徑,必須保證路徑的準确性),如下圖
<a href="http://s4.51cto.com/wyfs02/M01/78/C8/wKioL1aDaKbSaL88AABaARrANpM387.png" target="_blank"></a>
修改完成後儲存退出,執行下面指令重新開機apache
#/etc/init.d/httpd restart
4. 配置實作https的虛拟主機
#vi /etc/httpd/conf/httpd.conf
進入檔案後在檔案的最後添加如下圖所示内容後,儲存退出。
注意:上圖中所包含的檔案路徑需按照個人檔案所在路徑填寫
5. 重新開機apache并檢視https服務是否實作
驗證過程如下:
在虛拟機的浏覽器中輸入https://localhost/svn/project1,浏覽器會提示說你所登入的位址存在不安全因素,不用管它,直接添加信任(此時可以看到剛才申請的伺服器證書),輸入使用者名與密碼,登陸版本庫。
也可以在指令行輸入以下指令,檢視是否配置成功
# svn checkout
如果出現以下資訊則證明配置成功
<a href="http://s3.51cto.com/wyfs02/M02/78/CA/wKiom1aDaM7i_pgsAABlloD9m9o349.png" target="_blank"></a>
按照要求填寫使用者名與密碼,連接配接版本庫成功。
原文連結:
<a href="http://www.osyunwei.com/archives/9145.html" target="_blank">http://www.osyunwei.com/archives/9145.html</a>
本文轉自 興趣e族 51CTO部落格,原文連結:http://blog.51cto.com/simplelife/1729931