1. 程式人生 > >關於svn的安裝(Linux+nginx+svn)

關於svn的安裝(Linux+nginx+svn)

vim 根據 alt 命名空間 reat 通過 不同 style none

今天安裝一下svn本來覺得很簡單的事情趟坑就弄了半天,結合幾個線上文檔把自己好用的奉上。如有不足和錯的地方大家幫忙提意見啊。

1、安裝

安裝svn

安裝之前我們先檢查一下是否有svn

命令:svn --version (查看svn版本信息)

-bash: svn: command not found

沒有開始安裝

兩種方法
# yum install subversion

# apt-get install subversion

自選擇

我用的是yum

安裝之後 svn --version

如圖:

技術分享

然後就是創建svn倉庫

我是這個路徑/opt/svn/project,可以看個人習慣

#mkdir /opt/svn/project

然後就是創建倉庫了
#svnadmin create /opt/svn/project

2、配置

上面的操作很簡單,幾個命令就搞定, 下面的操作也不難。


進入/opt/svn/project目錄(這裏的project目錄不是網站的web目錄,倉庫名為project)。

會看到conf、hooks、db等目錄,我們會用到的也就conf(配置目錄)hooks(設置鉤子,後面會講到)
進入conf目錄, 有以下幾個文件(authz, passwd, svnserve.conf)

其中authz 是權限控制,可以設置哪些用戶可以訪問哪些目錄, passwd是設置用戶和密碼的, svnserve是設置svn相關的操作。

首先配置svnserve.conf
# vim svnserve.conf
修改(把前面的#號去掉,配置後面的值,共修改五行代碼)
anon-access = none # 使非授權用戶無法訪問
auth-access = write # 使授權用戶有寫權限
password-db = password
authz-db = authz # 訪問控制文件
realm = /opt/svn/repos (realm = project) # 認證命名空間,subversion會在認證提示裏顯示,並且作為憑證緩存的關鍵字。
采用默認配置. 以上語句都必須頂格寫, 左側不能留空格, 否則會出錯.

在passwd文件中添加用戶


# vim passwd
[users]
admin = 123456

這裏設置了一個用戶,根據情況不同可以隨意設置。

在authz中添加組和權限
# vim authz

[groups]
group1 = admin,dazeair #group1組裏的成員
group2 = user1,user2

[/] #配置根目錄的權限
admin =rw #admin用戶對[/]目錄的權限:r讀,w寫
@group1 = rw #@表示組,group1組有讀寫權限
@group2 = r #group2組只有r讀權限
* = #這裏表示其他用戶無任何權限

[www:/user1] #配置根目錄(www目錄)下的user1文件夾的權限
user1 = rw

這裏說明下,前面添加了四個用戶,分了兩個組,對於根目錄group1擁有讀寫權限,而group2只有r權限。
根目錄(www目錄)下有user1

好了,通過以上配置,你的svn就可以了。

3、連接

啟動svnserve
# svnserve -d -r /data/svn/project

也可以使用 --listen-port 參數指定端口(默認端口3690),啟動多個倉庫

正常情況下不會出現問題的,如出現請檢查剛才的配置文件

如果報錯:

svnserve: Can‘t bind server socket: Address already in use

糾結了吧!
解決辦法:

# killall svnserve
# svnserve -d -r /opt/svn/repos 啟動成功。

或者
# svnserve -d -r /mnt/westos --listen-port 3691

這樣同一臺服務器可以運行多個svnserver

好了,啟動成功後,就可以使用了。

在window上建議采用TortoiseSVN, 連接地址為: svn://your server address (如果指定端口需要添加端口:端口號)

這塊註意一定要在你的測試或者項目的目錄下:

技術分享

連接後可以上傳本地的文件,有效的管理你的代碼。

4、新建多個版本庫

若要在/svn目錄下添加新的版本庫,直接新建相應的目錄,然後設置為版本庫,最後配置即可,
不需要重新運行svnserve -d -r /opt/svn/project,

也不需要把該命令應用到/svn目錄下你所新建的目錄,

比如在/svn目錄下另外新建一個project2的資源庫,命令如下:

# mkdir -p /opt/svn/project2

# svnadmin create /opt/svn/project2

...(三個文件的配置)

(不需再運行svnserve -d -r /opt/svn/project2)

還有一塊是管理你的線上代碼,這塊研究後再編輯。(有後續...)

關於svn的安裝(Linux+nginx+svn)