Linux下SVN服務(wù)器同時(shí)支持Apache的http和svnserve獨(dú)立服務(wù)器兩種模式且使用相同的訪問(wèn)權(quán)限賬號(hào)
說(shuō)明:
服務(wù)器操作系統(tǒng):CentOS 6.x
服務(wù)器IP:192.168.21.134
實(shí)現(xiàn)目的:
1、在服務(wù)器上安裝配置SVN服務(wù);
2、配置SVN服務(wù)同時(shí)支持Apache的http和svnserve獨(dú)立服務(wù)器兩種模式訪問(wèn);
3、Apache的http和svnserve獨(dú)立服務(wù)器兩種模式使用相同的訪問(wèn)權(quán)限賬號(hào)。
具體操作:
一、關(guān)閉SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注釋掉
#SELINUXTYPE=targeted #注釋掉
SELINUX=disabled #增加
:wq! #保存退出
setenforce 0 #使配置立即生效
二、開(kāi)啟防火墻端口
系統(tǒng)運(yùn)維 www.osyunwei.com 溫馨提醒:系統(tǒng)運(yùn)維原創(chuàng)內(nèi)容©版權(quán)所有,轉(zhuǎn)載請(qǐng)注明出處及原文鏈接
基于Apache的http模式,默認(rèn)端口為80
基于svnserve的獨(dú)立服務(wù)器模式,默認(rèn)端口為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
:wq! #保存退出
service iptables restart #最后重啟防火墻使配置生效
三、安裝Apache
yum install httpd apr apr-util httpd-devel #安裝Apache
yum install mod_dav_svn mod_auth_mysql #安裝基于Apache的http模式訪問(wèn)的支持模塊
chkconfig httpd on #設(shè)置開(kāi)機(jī)啟動(dòng)
service httpd start #啟動(dòng)Apache
httpd -version #查看Apache版本信息
cd /etc/httpd/modules/
#查看是否有mod_dav_svn.so和mod_authz_svn.so模塊,如果有,說(shuō)明mod_dav_svn安裝成功!
#mod_auth_mysql模塊是用數(shù)據(jù)庫(kù)存儲(chǔ)賬號(hào)信息,本次教程沒(méi)有涉及,可以不安裝!
注意:如果Apache啟動(dòng)之后提示錯(cuò)誤:
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 #去掉前面的注釋
:wq! #保存退出
四、安裝SVN
yum install subversion #使用yum命令在線安裝
svnserve --version #查看svn版本信息
五、配置SVN
1、創(chuàng)建svn版本庫(kù)
mkdir -p /home/svn #創(chuàng)建svn版本庫(kù)存放目錄
cd /home/svn #進(jìn)入目錄
svnadmin create /home/svn/project1 #創(chuàng)建svn版本庫(kù)project1
svnadmin create /home/svn/project2 #創(chuàng)建svn版本庫(kù)project2
svnadmin create /home/svn/project3 #創(chuàng)建svn版本庫(kù)project3
2、設(shè)置配置文件
mkdir -p /home/svn/conf #創(chuàng)建配置文件目錄
cp /home/svn/project1/conf/passwd /home/svn/conf/passwd #拷貝賬號(hào)密碼配置文件模板
cp /home/svn/project1/conf/authz /home/svn/conf/authz #拷貝目錄權(quán)限配置文件模板
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
:wq! #保存退出
vi /home/svn/conf/authz #編輯,添加以下代碼
[groups]
admin = osyunwei
project1 = osyunwei1
project2 = osyunwei2
project3 = osyunwei3
[/]
@admin = rw
* =
[project1:/]
@admin = rw
@project1 = rw
* =
[project2:/]
@admin = rw
@project2 = rw
* =
[project3:/]
@admin = rw
@project3 = rw
* =
:wq! #保存退出
vi /home/svn/conf/svnserve.conf #配置全局文件,在最后添加以下代碼
[general]
anon-access=none #禁止匿名訪問(wèn),設(shè)置為none。默認(rèn)為read,參數(shù):read,write,none
auth-access=write #授權(quán)用戶寫(xiě)權(quán)限
password-db=/home/svn/conf/passwd #用戶賬號(hào)密碼文件路徑,可以寫(xiě)絕對(duì)路徑
authz-db=/home/svn/conf/authz #訪問(wèn)控制權(quán)限文件路徑,可以寫(xiě)絕對(duì)路徑
realm=svn #每個(gè)SVN項(xiàng)目的認(rèn)證命,會(huì)在認(rèn)證提示里顯示,建議寫(xiě)項(xiàng)目名稱(chēng)。
:wq! #保存退出
3、啟動(dòng)SVN
svnserve -d -r /home/svn --config-file /home/svn/conf/svnserve.conf --listen-port 3690
#--config-file后面跟全局配置參數(shù)文件
ps -ef|grep svn|grep -v grep #查看進(jìn)程
netstat -ln |grep 3690 #檢查端口
killall svnserve #關(guān)閉svn
4、設(shè)置svn服務(wù)開(kāi)機(jī)啟動(dòng)
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
echo "Successfully!"
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: svn { start | stop | restart } "
exit 1
esac
:wq! #保存退出
chmod +x /etc/init.d/svn #添加執(zhí)行權(quán)限
chkconfig svn on #開(kāi)機(jī)自啟動(dòng)
service svn start #啟動(dòng)
六、配置svn支持http訪問(wèn)
1、創(chuàng)建賬號(hào)密碼認(rèn)證文件
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
根據(jù)提示輸入2次密碼即可。
注意:
/home/svn/conf/目錄下面passwd文件是svnserve獨(dú)立服務(wù)器使用的認(rèn)證文件,密碼沒(méi)有加密,明文顯示。
/home/svn/conf/目錄下面http_passwd文件是Apache的http模式使用的認(rèn)證文件,密碼使用MD5加密。
passwd和http_passwd文件中,賬號(hào)密碼必須設(shè)置相同。
2、設(shè)置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>
:wq! #保存退出
3、設(shè)置目錄權(quán)限
chown apache:apache /home/svn -R #設(shè)置svn目錄所有者為Apache服務(wù)運(yùn)行賬號(hào)apache
4、重啟Apache服務(wù)
service httpd restart #重啟
七、測(cè)試svn
Windows下安裝svn客戶端TortoiseSVN。
TortoiseSVN下載地址:http://tortoisesvn.net/downloads.html
安裝完成之后,桌面-右鍵單擊,選擇TortoiseSVN-版本庫(kù)瀏覽器

URL輸入:svn://192.168.21.134/project1
用戶名:osyunwei1
密碼:123456
勾選:保存認(rèn)證
確定

可以進(jìn)入project1版本庫(kù)目錄,右鍵單擊之后,可以選擇創(chuàng)建文件夾等操作。

URL輸入:http://192.168.21.134/svn/project1
用戶名和密碼跟上面一樣,可以進(jìn)入project1版本庫(kù)目錄,右鍵單擊之后,可以選擇創(chuàng)建文件夾等操作。

project1訪問(wèn):
svn://192.168.21.134/project1
http://192.168.21.134/svn/project1
用戶名:osyunwei1
密碼:123456
project2訪問(wèn):
svn://192.168.21.134/project2
http://192.168.21.134/svn/project2
用戶名:osyunwei2
密碼:123456
project3訪問(wèn):
svn://192.168.21.134/project3 #svnserve獨(dú)立服務(wù)器模式
http://192.168.21.134/svn/project3 #Apache的http模式
用戶名:osyunwei3
密碼:123456
擴(kuò)展閱讀:
1、Apache htpasswd命令選項(xiàng)參數(shù)說(shuō)明
-c 創(chuàng)建一個(gè)加密文件
-n 不更新加密文件,只將apache htpasswd命令加密后的用戶名密碼顯示在屏幕上
-m 默認(rèn)apache htpassswd命令采用MD5算法對(duì)密碼進(jìn)行加密
-d apache htpassswd命令采用CRYPT算法對(duì)密碼進(jìn)行加密
-p apache htpassswd命令不對(duì)密碼進(jìn)行進(jìn)行加密,即明文密碼
-s apache htpassswd命令采用SHA算法對(duì)密碼進(jìn)行加密
-b 在apache htpassswd命令行中一并輸入用戶名和密碼而不是根據(jù)提示輸入密碼
-D 刪除指定的用戶
2、SVNPath 與 SVNParentPath區(qū)別:
SVNParentPath:支持多個(gè)相同父目錄的SVN版本庫(kù)。
SVNPath:只支持一個(gè)主目錄的SVN版本庫(kù),如果在主目錄下面建新項(xiàng)目,則提示無(wú)權(quán)訪問(wèn)。
至此,Linux下SVN服務(wù)器同時(shí)支持Apache的http和svnserve獨(dú)立服務(wù)器兩種模式且使用相同的訪問(wèn)權(quán)限賬號(hào)教程完成。
相關(guān)文章
centos6.8下hadoop3.1.1完全分布式安裝指南(推薦)
這篇文章主要介紹了centos6.8下hadoop3.1.1完全分布式安裝指南,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
windows10安裝ubuntu20.04雙系統(tǒng)詳細(xì)圖文教程
這篇文章主要介紹了windows10安裝ubuntu20.04雙系統(tǒng)詳細(xì)圖文教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
淺析linux查看防火墻狀態(tài)和對(duì)外開(kāi)放的端口狀態(tài)
這篇文章主要介紹了linux查看防火墻狀態(tài)和對(duì)外開(kāi)放的端口狀態(tài),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
Linux系統(tǒng)中Tomcat環(huán)境配置方式
這篇文章主要介紹了Linux系統(tǒng)中Tomcat環(huán)境配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
linux下RPM包安裝基于xinetd的服務(wù)的管理
大家好,本篇文章主要講的是linux下RPM包安裝基于xinetd的服務(wù)的管理,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12
Linux下Apache HTTP Server 2.4.26安裝教程
這篇文章主要為大家詳細(xì)介紹了Linux下Apache HTTP Server 2.4.26的安裝,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07

