天天看點

vps配置筆記(10)架設svn服務

linux 下面架設svn伺服器,有點難度,我找了好多資料,現在是安裝成功了,服務也起動了,但就是不可以在用戶端拉下來,下面是一篇相關的資料,如果想購買國外vps的可以找我,哈

介紹幾個賺錢的項目,有興趣可以聯系我

非常慚愧的還沒有抽出時間去學一學git,權且先在這裡記錄一下當下的比較主流的subversion(svn)的架設記錄,網上已經有很多了,在這裡隻是整理記錄一下而已。

svn目前作為服務總體上有兩種常見形式svn自身協定的方式或者走http協定,svn自身協定自不待言搭建簡單友善一條指令搞定:

​ sudo svnserve -d --listen-port 1234 --listen-host scm.myhost.com --pid-file /var/run/svnserved.pid -r /scm/svn/repos/myproject ​

各參數大緻意義:

-d 指定背景daemon服務方式運作

listen-port 監聽端口 1234

listen-host 監聽域名 scm.myhost.com

pid-file 指定運作時程序PID号記錄檔案路徑 /var/run/svnserved.pid

-r 指定項目svn庫所在路徑。/scm/svn/repos/myproject

一旦架設完成後面就可以用svn checkout檢出源碼了:

​ svn co svn://scm.myhost.com:1234/myproject ​

svn庫建立指令

​ svnadmin create /scm/svn/repos/myproject ​

建立好基本庫後一般都需要建構一下基本的源碼管理layout布局:

​ mkdir -p /tmp/layout/{trunk,branches,tags} cd /tmp/layout svn import . file:////scm/svn/repos/myproject -m 'init project layout' ​

然後我們以後checkout主線代碼就可以:

​ svn co svn://scm.myhost.com:1234/myproject/trunk ​

svn的http協定方式目前還依賴于apache容器,不過你願意的話也可以前端用varnish/nginx把請求轉發到apache容器上也可以達到對外統一服務的目的。

基本的安裝就不細細叙述了,這裡隻寫一下vhost下的配置方法。

首先需要建立幾個共用檔案:

/scm/svn/conf/accessfile

用來設定所有項目的各個賬戶權限,具體請參考svn的配置檔案文檔,這裡僅給個例子:

​ [groups] administrator = axiong [/] @administrator = rw * = ​

/scm/svn/conf/passwdfile

用來指定所有項目的使用者和對應密碼,當然這部分也可以在mysql裡搞定,感覺小型項目沒有什麼必要,還是文本友善,可以用apache-util裡的htpasswd生成。

指定完了後就是vhost的配置了:

<VirtualHost *:80>
        ServerName scm.myhost.com
        <Directory />
                Options Includes FollowSymLinks
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
    <Location /svn>
        DAV svn
        SVNParentPath /scm/svn/repos
        AuthType Basic
        AuthName "Subversion System"
        AuthUserFile /scm/svn/conf/passwdfile
        AuthzSVNAccessFile /scm/svn/conf/accessfile
        Satisfy Any
        Require valid-user
    </Location>
</VirtualHost>      

這樣就架設好了http://scm.myhost.com/svn/myproject的svn庫,

以後還可以在/scm/svn/repos下建立更多的svn庫使用統一管理的賬戶和密碼。

注意/scm/svn/repos下的每一個項目都需要有apache所在組或使用者的寫入權限,否則代碼會送出出錯。

更新一下:修改了一下location位址友善和trac配合

作者:​​水木​​    

繼續閱讀