Linux系統中svn服務是否啟動,重啟及設置開機啟動
安裝完svn服務器后雖然好用但是因為經常重啟Linux服務器,每次重啟完就要去手動啟動svn服務器,很是麻煩,於是在網上找了一些方法后,自己把svn服務器設置成開機啟動
步驟一:安裝svn服務器:
1. 安裝SVN服務器:
檢查是否已安裝
# rpm -qa subversion
安裝SVN服務器
# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql
驗證安裝
# cd /etc/httpd/modules # ls | grep svn mod_authz_svn.so mod_dav_svn.so
查看版本
# svnserve --version
2. 代碼庫創建:
安裝完成后要建立SVN庫
# mkdir -p /opt/svn/repositories # svnadmin create /opt/svn/repositories
執行后,自動建立repositories庫,查看/opt/svn/repositories文件夾包含了conf,db,format,hooks,locks,README.txt等文件,說明一個SVN庫已經建立。
3. 配置版本庫:
進入上面conf文件夾下,進行配置:
a. 用戶密碼passwd配置:
# vi + passwd //+表示光標放在文件最低端
修改passwd為一下內容:
[users] # harry = harryssecret # sally = sallyssecret zhoulf=123456
b. 權限控制authz配置:
# vi + authz
設置哪些用戶可以訪問哪些目錄,向authz文件追加以下內容:
[/] zhoulf=rw //給該用戶訪問所有庫的權限 或 [repositories:/project] //repository庫的根目錄權限 zhoulf=rw
/ 表示根目錄及以下,根目錄是svnserve啟動時指定的,我們指定的是/opt/svn;/ 就是指對全部版本庫都具有權限
repositories:/ 表示對庫repositories的根目錄設置權限
PS:
* 權限配置文件中出現的用戶名必須已在用戶配置文件中定義。
* 對權限配置文件的修改立即生效,不必重啟svn。
c. 服務svnserve.con配置:
# vi + svnserve.conf
添加一下內容:
[general] #匿名訪問的權限,可以是read,write,none,默認為read anon-access=none #使授權用戶有寫權限 auth-access=write #密碼數據庫的路徑 password-db=passwd #訪問控制文件 authz-db=authz #認證命名空間,subversion會在認證提示里顯示,並且作為憑證緩存的關鍵字 realm=/opt/svn/repositories
這里注意各標簽不能錯,也不能有重復,不然無法連接。
d. 配置防火牆端口(如果需要):
不一定每個人都需要設置,可以先測試后再看是否需要打開端口
# vi /etc/sysconfig/iptables
添加一下內容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重啟防火牆
# service iptables restart
4. 查看:
a. 啟動SVN
# svnserve -d -r /opt/svn/repositories(你的svn所在目錄)
b. 查看SVN進程
# ps -ef|grep svn|grep -v grep root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /opt/svn/repositories
c. 檢測SVN端口
# netstat -ln |grep 3690 tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
5. 停止重啟SVN:
# killall svnserve //停止 # svnserve -d -r /opt/svn/repositories // 啟動
6. 測試連接:
(1) 在本地電腦上安裝TortoiseSVN客戶端:
成功安裝TortoiseSVN后在電腦桌面右鍵有TortoiseSVN提示;選擇Repo-browser;會出現一個地址欄;
(2)在地址欄輸入:svn://+服務器IP地址;如果安裝沒問題的話就會進入服務器的資源庫
二、Linux服務器端設置svn開機啟動
(1)在Linux服務器跟目錄((/root路徑下))創建一個腳本文件
# touch svn.sh
(2) 進入腳本文件
# vim svn.sh
(3)添加一下內容
#!/bin/bash
/usr/bin/svnserve -d -r /opt/svn/repositories
解釋一下:
這里的svnserve路徑保險起見,最好寫絕對路徑,因為啟動的時候,環境變量也許沒加載。
絕對路徑怎么查?
在末尾添加腳本的路徑:
/root/svn.sh