Linux下SVN服務(wù)器同時(shí)支持Apache的http和svnserve獨(dú)立服務(wù)器兩種模式且使用相同的訪問權(quán)限賬號(hào)
說明:
服務(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ù)器兩種模式訪問;
3、Apache的http和svnserve獨(dú)立服務(wù)器兩種模式使用相同的訪問權(quán)限賬號(hào)。
具體操作:
一、關(guān)閉SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注釋掉
#SELINUXTYPE=targeted #注釋掉
SELINUX=disabled #增加
:wq! #保存退出
setenforce 0 #使配置立即生效
二、開啟防火墻端口
系統(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模式訪問的支持模塊
chkconfig httpd on #設(shè)置開機(jī)啟動(dòng)
service httpd start #啟動(dòng)Apache
httpd -version #查看Apache版本信息
cd /etc/httpd/modules/
#查看是否有mod_dav_svn.so和mod_authz_svn.so模塊,如果有,說明mod_dav_svn安裝成功!
#mod_auth_mysql模塊是用數(shù)據(jù)庫存儲(chǔ)賬號(hào)信息,本次教程沒有涉及,可以不安裝!
注意:如果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版本庫
mkdir -p /home/svn #創(chuàng)建svn版本庫存放目錄
cd /home/svn #進(jìn)入目錄
svnadmin create /home/svn/project1 #創(chuàng)建svn版本庫project1
svnadmin create /home/svn/project2 #創(chuàng)建svn版本庫project2
svnadmin create /home/svn/project3 #創(chuàng)建svn版本庫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 #禁止匿名訪問,設(shè)置為none。默認(rèn)為read,參數(shù):read,write,none
auth-access=write #授權(quán)用戶寫權(quán)限
password-db=/home/svn/conf/passwd #用戶賬號(hào)密碼文件路徑,可以寫絕對(duì)路徑
authz-db=/home/svn/conf/authz #訪問控制權(quán)限文件路徑,可以寫絕對(duì)路徑
realm=svn #每個(gè)SVN項(xiàng)目的認(rèn)證命,會(huì)在認(rèn)證提示里顯示,建議寫項(xià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ù)開機(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 #開機(jī)自啟動(dòng)
service svn start #啟動(dòng)
六、配置svn支持http訪問
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)證文件,密碼沒有加密,明文顯示。
/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 #重啟
七、測試svn
Windows下安裝svn客戶端TortoiseSVN。
TortoiseSVN下載地址:http://tortoisesvn.net/downloads.html
安裝完成之后,桌面-右鍵單擊,選擇TortoiseSVN-版本庫瀏覽器
URL輸入:svn://192.168.21.134/project1
用戶名:osyunwei1
密碼:123456
勾選:保存認(rèn)證
確定
可以進(jìn)入project1版本庫目錄,右鍵單擊之后,可以選擇創(chuàng)建文件夾等操作。
URL輸入:http://192.168.21.134/svn/project1
用戶名和密碼跟上面一樣,可以進(jìn)入project1版本庫目錄,右鍵單擊之后,可以選擇創(chuàng)建文件夾等操作。
project1訪問:
svn://192.168.21.134/project1
http://192.168.21.134/svn/project1
用戶名:osyunwei1
密碼:123456
project2訪問:
svn://192.168.21.134/project2
http://192.168.21.134/svn/project2
用戶名:osyunwei2
密碼:123456
project3訪問:
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ù)說明
-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版本庫。
SVNPath:只支持一個(gè)主目錄的SVN版本庫,如果在主目錄下面建新項(xiàng)目,則提示無權(quán)訪問。
至此,Linux下SVN服務(wù)器同時(shí)支持Apache的http和svnserve獨(dú)立服務(wù)器兩種模式且使用相同的訪問權(quán)限賬號(hào)教程完成。
相關(guān)文章
關(guān)于linux下core dump【總結(jié)】
下面小編就為大家?guī)硪黄P(guān)于linux下core dump【總結(jié)】。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01詳解Linux 安裝 JDK、Tomcat 和 MySQL(圖文并茂)
本文會(huì)詳細(xì)介紹 Windows 上安裝虛擬機(jī)之后,如何在 Linux 中安裝 JDK、Tomcat 和 MySQL 的過程,有興趣的可以了解一下2017-08-08linux下如何查看java進(jìn)程內(nèi)存占用情況
這篇文章主要介紹了linux下如何查看java進(jìn)程內(nèi)存占用情況問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12禁止網(wǎng)站顯示文件目錄列表的2個(gè)方法(htaccess)
這篇文章主要介紹了禁止網(wǎng)站顯示文件目錄列表的2個(gè)方法,需要的朋友可以參考下2016-04-04給Linux定時(shí)備份數(shù)據(jù)庫的實(shí)現(xiàn)腳本
這篇文章主要介紹了Linux定時(shí)備份數(shù)據(jù)庫實(shí)現(xiàn)方式,如果你的服務(wù)器數(shù)據(jù)庫需要實(shí)現(xiàn)每天定時(shí)備份,那么這篇文章會(huì)對(duì)你大有幫助,有需要的朋友可以借鑒參考下2021-09-09Linux下實(shí)現(xiàn)免密碼登錄(超詳細(xì))
這篇文章主要介紹了Linux下實(shí)現(xiàn)免密碼登錄的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-10-10云服務(wù)器部署?Web?項(xiàng)目的實(shí)現(xiàn)步驟
本文主要介紹了云服務(wù)器部署Web項(xiàng)目的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06Linux系統(tǒng)下如何實(shí)現(xiàn)修改主機(jī)名
這篇文章主要介紹了Linux系統(tǒng)下如何實(shí)現(xiàn)修改主機(jī)名問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02Easypanel免費(fèi)的VPS主機(jī)面板 可跨平臺(tái)Linux和Windows
Easypanel是一款免費(fèi)的功能強(qiáng)大集開通虛擬主機(jī),ftp空間,數(shù)據(jù)庫等功能為一體的主機(jī)控制面板,具備跨平臺(tái)(windows,linux),安全穩(wěn)定、操作簡便等特點(diǎn),感興趣的小伙伴們可以關(guān)注一下2017-07-07linux定時(shí)任務(wù)的一些相關(guān)操作匯總
這篇文章主要給大家介紹了關(guān)于linux定時(shí)任務(wù)的一些相關(guān)操作,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用linux系統(tǒng)組件具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05