CentOS 6.x下SVN伺服器同時支援Apache的http和svnserve獨立伺服器兩種模式且使用相同的存取權限帳號

來源:互聯網
上載者:User

說明:

 

伺服器作業系統:CentOS 6.x

 

伺服器IP:192.168.21.134

 

實現目的:

 

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.111cn.net  溫馨提醒:系統營運原創內容©著作權,轉載請註明出處及原文連結

 

基於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

 

: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 #設定開機啟動

 

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 #去掉前面的注釋

 

:wq! #儲存退出

 

四、安裝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

 

: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 #禁止匿名訪問,設定為none。預設為read,參數:read,write,none

 

auth-access=write #授權使用者寫入權限

 

password-db=/home/svn/conf/passwd #使用者帳號密碼檔案路徑,可以寫絕對路徑

 

authz-db=/home/svn/conf/authz #存取控制許可權檔案路徑,可以寫絕對路徑

 

realm=svn #每個SVN項目的認證命,會在認證提示裡顯示,建議寫項目名稱。

 

:wq! #儲存退出

 

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服務開機啟動

 

系統營運  www.111cn.net  溫馨提醒:系統營運原創內容©著作權,轉載請註明出處及原文連結

 

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 #添加執行許可權

 

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 #編輯,在最後添加以下代碼

 

 

DAV svn

 

#SVNPath /home/svn

 

SVNParentPath /home/svn

 

# # Limit write permission to list of valid users.

 

#

 

# # 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

 

#

 

 

:wq! #儲存退出

 

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

 

使用者名稱: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獨立伺服器模式

 

http://192.168.21.134/svn/project3 #Apache的http模式

 

使用者名稱:osyunwei3

 

密碼:123456

 

擴充閱讀:

 

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版本庫,如果在主目錄下面建新項目,則提示無權訪問。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.