Linux下SVN服務(wù)器同時支持Apache的http和svnserve獨立服務(wù)器兩種模式且使用相同的訪問權(quán)限賬號
說明:
服務(wù)器操作系統(tǒng):CentOS 6.x
服務(wù)器IP:192.168.21.134
實現(xiàn)目的:
1、在服務(wù)器上安裝配置SVN服務(wù);
2、配置SVN服務(wù)同時支持Apache的http和svnserve獨立服務(wù)器兩種模式訪問;
3、Apache的http和svnserve獨立服務(wù)器兩種模式使用相同的訪問權(quán)限賬號。
具體操作:
一、關(guān)閉SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注釋掉
#SELINUXTYPE=targeted #注釋掉
SELINUX=disabled #增加
:wq! #保存退出
setenforce 0 #使配置立即生效
二、開啟防火墻端口
系統(tǒng)運維 www.osyunwei.com 溫馨提醒:系統(tǒng)運維原創(chuàng)內(nèi)容©版權(quán)所有,轉(zhuǎn)載請注明出處及原文鏈接
基于Apache的http模式,默認端口為80
基于svnserve的獨立服務(wù)器模式,默認端口為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è)置開機啟動
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模塊是用數(shù)據(jù)庫存儲賬號信息,本次教程沒有涉及,可以不安裝!
注意:如果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 #去掉前面的注釋
:wq! #保存退出
四、安裝SVN
yum install subversion #使用yum命令在線安裝
svnserve --version #查看svn版本信息
五、配置SVN
1、創(chuàng)建svn版本庫
mkdir -p /home/svn #創(chuàng)建svn版本庫存放目錄
cd /home/svn #進入目錄
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 #拷貝賬號密碼配置文件模板
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。默認為read,參數(shù):read,write,none
auth-access=write #授權(quán)用戶寫權(quán)限
password-db=/home/svn/conf/passwd #用戶賬號密碼文件路徑,可以寫絕對路徑
authz-db=/home/svn/conf/authz #訪問控制權(quán)限文件路徑,可以寫絕對路徑
realm=svn #每個SVN項目的認證命,會在認證提示里顯示,建議寫項目名稱。
:wq! #保存退出
3、啟動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 #查看進程
netstat -ln |grep 3690 #檢查端口
killall svnserve #關(guān)閉svn
4、設(shè)置svn服務(wù)開機啟動
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 #開機自啟動
service svn start #啟動
六、配置svn支持http訪問
1、創(chuàng)建賬號密碼認證文件
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獨立服務(wù)器使用的認證文件,密碼沒有加密,明文顯示。
/home/svn/conf/目錄下面http_passwd文件是Apache的http模式使用的認證文件,密碼使用MD5加密。
passwd和http_passwd文件中,賬號密碼必須設(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ù)運行賬號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
勾選:保存認證
確定
可以進入project1版本庫目錄,右鍵單擊之后,可以選擇創(chuàng)建文件夾等操作。
URL輸入:http://192.168.21.134/svn/project1
用戶名和密碼跟上面一樣,可以進入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獨立服務(wù)器模式
http://192.168.21.134/svn/project3 #Apache的http模式
用戶名:osyunwei3
密碼:123456
擴展閱讀:
1、Apache htpasswd命令選項參數(shù)說明
-c 創(chuàng)建一個加密文件
-n 不更新加密文件,只將apache htpasswd命令加密后的用戶名密碼顯示在屏幕上
-m 默認apache htpassswd命令采用MD5算法對密碼進行加密
-d apache htpassswd命令采用CRYPT算法對密碼進行加密
-p apache htpassswd命令不對密碼進行進行加密,即明文密碼
-s apache htpassswd命令采用SHA算法對密碼進行加密
-b 在apache htpassswd命令行中一并輸入用戶名和密碼而不是根據(jù)提示輸入密碼
-D 刪除指定的用戶
2、SVNPath 與 SVNParentPath區(qū)別:
SVNParentPath:支持多個相同父目錄的SVN版本庫。
SVNPath:只支持一個主目錄的SVN版本庫,如果在主目錄下面建新項目,則提示無權(quán)訪問。
至此,Linux下SVN服務(wù)器同時支持Apache的http和svnserve獨立服務(wù)器兩種模式且使用相同的訪問權(quán)限賬號教程完成。
相關(guān)文章
關(guān)于linux下core dump【總結(jié)】
下面小編就為大家?guī)硪黄P(guān)于linux下core dump【總結(jié)】。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01詳解Linux 安裝 JDK、Tomcat 和 MySQL(圖文并茂)
本文會詳細介紹 Windows 上安裝虛擬機之后,如何在 Linux 中安裝 JDK、Tomcat 和 MySQL 的過程,有興趣的可以了解一下2017-08-08禁止網(wǎng)站顯示文件目錄列表的2個方法(htaccess)
這篇文章主要介紹了禁止網(wǎng)站顯示文件目錄列表的2個方法,需要的朋友可以參考下2016-04-04給Linux定時備份數(shù)據(jù)庫的實現(xiàn)腳本
這篇文章主要介紹了Linux定時備份數(shù)據(jù)庫實現(xiàn)方式,如果你的服務(wù)器數(shù)據(jù)庫需要實現(xiàn)每天定時備份,那么這篇文章會對你大有幫助,有需要的朋友可以借鑒參考下2021-09-09Easypanel免費的VPS主機面板 可跨平臺Linux和Windows
Easypanel是一款免費的功能強大集開通虛擬主機,ftp空間,數(shù)據(jù)庫等功能為一體的主機控制面板,具備跨平臺(windows,linux),安全穩(wěn)定、操作簡便等特點,感興趣的小伙伴們可以關(guān)注一下2017-07-07