jojo's blog--快乐忧伤都与你同在
为梦想而来,为自由而生。 性情若水,风起水兴,风息水止,故时而激荡,时又清平……
posts - 11,  comments - 30,  trackbacks - 0
Ubuntu 己是近來 Linux 最熱門的 Distribution,它的3D效果真不是蓋的,要不是ATI不爭器,家裡的伺服器(ATI Radeon 9000)早就把它替換掉了,正好最近要將 CVS 轉換為 SVN 系統,就拿它來練功吧!

雖然一開始安裝的是 Ubuntu Desktop 版本(目前最新是 9.10 版),但是在 Ubuntu 下安裝伺服器套件是非常簡單的一件事,只要確定你的電腦可以連上網路,確認你的 source.list 是否正確?(建議您安裝 Lazybuntu 懶人包),按下面步驟即可完成安裝:
(參考文件:在 Ubuntu 中使用 Apache2 管理 Subversion 版本控制系統)

底下以文字介面的安裝為主,若您使用 GUI 介面的 Synaptic 套件管理程式也可以。
1. 安裝 Apache2 和 Subversion 模組:
$sudo apt-get install apache2 apache2-common apache2-utils apache2-doc libapache-svn subversion
你也可以選擇安裝 subcommander(Ubuntu 底下的 SVN GUI Client)。

2. 建立 Subversion 儲存庫(Repository)
a. 建立 SVN Root 目錄:
$sudo mkdir -p /var/local/svnroot
b. 初始化儲存庫:
$sudo svnadmin create /var/local/svnroot
c. 授予 Apache(www-data) 使用者存取的權限:
$sudo chown -R www-data:www-data /var/local/svnroot

3. 修改 Apache2 的設定:
$sudo gedit /etc/apache2/mods-available/dav_svn.conf
修改 "Location" 區段,內容對應如下:
<Location>
DAV svn
SVNPath /var/local/svnroot
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /etc/subversion/passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>

Location 後面所接的是在 URL 所要打的網址,以本例而言,透過瀏覽器要輸入:http://localhost/svnroot
SVNPath 為 Subversion 的檔案庫路徑,如果將 SVNPath 改為 SVNParentPath,則泛指在 SVNParentPath 下的所有目錄都會被視為是 Subversion 檔案庫。
AuthUserFile 則是指存放使用者名稱及密碼的檔案路徑。

4. 創建使用者驗証資訊:
$sudo htpasswd2 [-c] /etc/subversion/passwd username
依照指示輸入使用者密碼即可完成驗証。
-c:表示是否要新建檔案,舊有檔案內容會完全刪除,適用於第一次建立 passwd 檔時。

5. 重新啟動 Apache2:
$sudo /etc/init.d/apache2 restart

6. 打開瀏覽器,訪問http://localhost/svnroot, 就可以看到Subversion庫的網頁。(當然,現在還沒有任何東東,下面我們要導入一些文件)

7. 匯入(inmport) /home/username/workspace中的文件到http://localhost/svnroot 下的workspace目錄(原始專案目錄);"操作注釋"的內容可隨需求添加,username 為專案使用者名稱。
$ svn import -m "操作注釋" /home/username/workspace http://localhost/svnroot/workspace

8. 取出(checkout)剛才匯入的專案:
checkout http://localhost/svnroot/workspace 中的文件到/home/username/test
$svn checkout http://localhost/svnroot/workspace /home/username/test
注意:匯出的目錄名稱不可與匯入的目錄名稱相同(最好是將原始的專案目錄(workspace)與匯出的工作目錄(sandbox)區分開來)。

8. 若您需要 Windows 下的 GUI 介面工具,可以下載安裝 TortoiseSVN 工具。(請一併下載並安裝語言套件Language Pack)
安裝完成後請依下步驟設定語言介面:

a. 開啟 TortoiseSVN 設定頁面(在入一資料夾上按滑鼠右鍵)
b. 選擇語言版本
c. 中文化後的選單介面



在安裝好了 Subversion Server後,最重要的莫過於對於使用者權限的控管,底下將介紹如何針對不同的使用者設置不同的存取權限:
9. 修改 dav 配置檔 /etc/apache2/mods-available/dav_svn.conf:
<Location /svntest>
    DAV svn
    SVNPath /var/local/svntest
    AuthType Basic
    AuthName "Subversion test repository"
    AuthUserFile "/var/local/svntest/conf/passwd"
    AuthzSVNAccessFile "/var/local/svntest/conf/authz"
    Require valid-user
    SVNAutoversioning on
</Location>

10. 創建 SVN 儲存庫 svntest:
    sudo svnadmin create /var/local/svntest
    sudo find /var/local/svntest -type f -exec chmod 660 {} ";
    sudo find /var/local/svntest -type d -exec chmod 2770 {} ";
    sudo chown -R root.www-data /var/local/svntest

11. 修改儲存庫設定檔 /var/local/svntest/conf/svnserver.conf:
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

12. 創建使用者資料庫:
    cd /var/local/svntest/conf
    sudo htpasswd [-c] passwd user1_id
    然後依照指示輸入 user1_id 的密碼
    若有多個使用者,請重覆上述指令(請移除 [-c] 選項)

13. 編輯儲存庫存取權限 /var/local/svntest/conf/authz:
    [groups]
    #group_name = user1,user2,user3...
    software = aaa,bbb,ccc
    hardware = ddd,eee

    #[repository:PATH]
    [/]
    # '@' 符號用來表示群組名稱
    @software = rw
    ddd = rw
    * = r

    [svntest:/sch]
    @hardware = rw
    @software = r
    * = r

14. 重新啟動 apache2:
    sudo /etc/init.d/apache2 restart

posted on 2009-05-08 15:31 Blog of JoJo 阅读(698) 评论(2)  编辑  收藏 所属分类: 每日一记

FeedBack:
# re: 每日一学 2009/05/08 怎样安装配置 subversion server + apache
2009-05-08 15:49 | Blog of JoJo
=======Window 下安装Subversion Server============
http://blog.roodo.com/rocksaying/archives/2385729.html

Subversion (簡稱 SVN) 是繼 CVS 之後新興的版本控制工具 (version control system) 。對於版本控制工具的諸多概念與名詞,我並不打算說明,因為《Version Control with Subversion》已經說得很仔細。以我個人的經驗,任何接觸過版本控制工具的 programmer ,都會上癮,深陷其中、不可自拔。誇張地形容, Programmer 可以沒有 IDE 工具,但不能沒有版本控制工具。

如我這類常常接觸 open source software 的 Programmer ,多數皆熟悉 CVS/SVN 這類版本控制工具。我原本預期國內資訊軟體公司會更普遍地使用版本控制工具,但匪夷所思的是國內資訊軟體公司中的資訊工程師似乎對其非常陌生。例如在我過去任職的一間通過 CMMI level-2 認證的資訊軟體公司之中,工程師竟然沒有使用版本控制工具的習慣。我這自學起家的人,完全無法理解國內的程設人才正規養成教育出了什麼問題?為什麼他們不用呢?所以本文預期作為 Subversion 的快速入手指南,使 programmer 可以在自己的桌面環境中安裝 Subversion ,並用它來維護為自己寫的小工具程式。透過這一過程,養成 programmer 使用版本控制工具的習慣。沒錯, Subversion 不是只用在專案軟體開發的大傢伙,就算是為了個人用途撰寫的小工具程式,它都能幫上不少忙。

多年前,我在 GNU/Linux 和 FreeBSD 環境下把玩 BBS 程式碼時 (Firebird BBS, TIP) ,我就開始接觸 CVS 這個版本控制工具。當我面對組成 BBS 的上百份 C 語言原始檔、上萬行程式碼時, CVS 是不可或缺的工具。沒有 CVS/SVN 這類版本控制工具,任何修改程式碼的動作都會增加 programmer 大腦記憶體的負擔, programmer 將會浪費許多時間在搜尋與比對程式碼的工作之上。就算是撰寫個人使用的小程式,版本控制工具仍然帶給 programmer 許多便利之處。我為自己寫過的小工具不知凡幾,有些程式寫完後又過了好幾個月才會想到再修改。此時版本控制工具的提交 (commit) 記錄功能就能幫我喚起以往撰寫過程中的記憶。分支功能可以讓我無後顧之憂地為我的小工具添加新功能,確認無誤後再合併回主幹。
取得安裝套件

安裝 Subversion server 其實是件很簡單的事,許多 GNU/Linux distribution 都已經提供 Subversion package ,只要一個安裝指令就能完成安裝動作。雖然大多數使用者並不使用 GNU/Linux 作為桌面環境,而是使用 Microsoft Windows 2k/xp 作為家中的桌面環境。但在這桌面環境下安裝 Subversion 服務仍然是件非常簡單的事。例如本文內容就是在 Microsoft Windows XP 平台上進行 Subversion server 的實際安裝工作。

首先,請先到「Subversion」網站中取得 Subversion server 的安裝套件。在「下載頁面」中列出了多種平台的可執行安裝套件。 Windows 平台使用者,請開啟 Subversion Win32 binaries 之頁面下載。撰寫本文時,下載的是 svn-win32-1.4.0.zip 。這個安裝套件就只是一個 Zip 壓縮包,裡面是一組包含 Subversion server 以及 client 的命令列工具,所以以下的操作過程, GNU/Linux 和 MS Windows 平台皆適用。
安裝與啟動 Subversion server

取得 Subversion 安裝套件的壓縮包後,解開其中的檔案放置到你想放的目錄中。此例中放在 "C:\Program Files\svn-win32" 。工具皆在其 bin 目錄中,主要使用到三個工具。

* svnserve
Subversion Server 主程式。本文提到「啟動 Subversion server」,意思就是執行 svnserve 此一程式。
* svnadmin
Subversion 專案管理工具。負責新增空白專案、刪除專案等動作。
* svn
Subversion 專案內容存取工具。舉凡 checkout (提出專案內容), commit (提交修改內容), update, revert 等存取動作,皆使用此工具。

設置 Subversion server 的方法很多,本文只說明最簡單的一種方式,就是單獨運行 svnserve ,只要執行 svnserve 時加上 "--daemon" 參數即可,這種方式適合做為個人用途。若要進行 team work ,請參閱《Version Control with Subversion - Chapter 6. Server Configuration》進行配置。另有一個常用的選擇性參數 "--root" 可以指示 Subversion server 搜尋專案貯藏庫 (Repository) 的起點。 MS Windows 平台使用者,可以建立 svnserve.exe 的捷徑,將 "--daemon" 和 "--root" 附加在「目標欄位」,如圖「svnserve 捷徑設定」所示。日後需要使用 Subversion 時,便可直接點擊捷徑啟動 Subversion server 。作為個人用途,這種需要時再啟動的方式也就足夠了。如果你想在不登入桌面的情況下使用 Subversion 服務,請參閱《Version Control with Subversion - Chapter 6. Server Configuration》,將 Subversion server 設定為系統服務。 GNU/Linux 可以選擇 inet daemon 和 apache server 兩種設置方式。而 Windows 平台使用者,在 svn-win32 1.40 版之後,可以將 svnserve 設定為 Windows Service (系統服務) ,請參閱《TortoiseSVN Manual - Svnserve Based Server》。
svnserve 捷徑設定
圖1: svnserve 捷徑設定
Subversion server 如何尋找專案貯藏庫 (Repository)

Subversion 預設使用專屬的 URL 格式存取專案,其格式為 "svn://主機名稱/專案貯藏庫路徑/" 。本文只在個人桌面環境下使用,所以主機名稱為 localhost 。基本上,你可以將專案貯藏庫 (Repository) 放在任何目錄中。若啟動 Subversion server 時未指定 root 路徑 (未加 "--root") ,則 Subversion server 會將 URL 所指示的專案貯藏庫路徑視為完整的本地檔案路徑。例如 URL 若為 "svn://localhost/repository/project1/" ,則 Subversion server 會認為專案貯藏庫放置在 "/repository/project1" (Windows 則為 "c:\repository\project1") 。 Windows 平台的使用者在此需要注意一點,你只能選擇其中一個磁碟放置 Repository ,預設是 "C:" 。這是因為 Subversion 存取專案內容的 URL 不能包括磁碟代號,因此若你將專案貯藏庫放在其他磁碟中,就必須在啟動 Subversion server 時加上 "--root" 參數指示磁碟代號,例如 "svnserve --daemon --root d:"。將各個專案的貯藏庫集中放置在一個目錄下,其實是個好主意,配合 "--root" 參數指定 root 路徑,可以少記很多字。例如將專案的貯藏庫都放置在 "d:\repository" 的目錄中,那麼啟動 Subversion server 的參數應為 "--daemon --root d:\repository" ,專案貯藏庫的 URL 則簡化為 "svn://localhost/專案貯藏庫目錄/" 。
實例測試

所有專案的貯藏庫都存放在 "d:\repository" 目錄之中,故啟動 Subversion server 的命令列內容為 "svnserve --daemon --root d:\repository" 。見圖「svnserve 捷徑設定」。

現在要建立一個名為「hello world」的專案,故在 "d:\repository" 目錄中,建立一個名為 "hello_world" 的目錄以貯藏專案內容。建立目錄後,再使用命令列工具 "svnadmin" ,配合參數 "create" 於此目錄中建立空白專案貯藏庫 (Repository),見圖「Create a repository by svnadmin」。已安裝 TortoiseSVN 的使用者,可以用圖形化介面操作,見圖「Create a repository by TortoiseSVN」。 TortoiseSVN 建立專案時,會詢問使用者要以何種方式儲存專案,建議使用預設的「Berkeley database (BDB)」方式。
Create a repository by svnadmin
圖2: Create a repository by svnadmin
Create a repository by TortoiseSVN - 1
圖3: Create a repository by TortoiseSVN - 1
Create a repository by TortoiseSVN - 2
圖4: Create a repository by TortoiseSVN - 2

Subversion 工具會自動在 "hello_world" 目錄中產生專案所需的初始檔案。其中最重要的是專案組態檔 "conf/svnserve.conf" 以及密碼檔 "conf/passwd" 。Subversion 提供多種靈活的使用者認證方式,在此只用 Subversion 內建的認證方式。首先應指定未認證者 (annonymous) 及已認證者 (authorized) 的專案存取權限。在此例中因為是個人用途,所以應禁止未認證者存取,設定 "anon-access = none" ;允許已認證者讀取及寫入,設定 "auth-access = write" 。接著用最簡單的密碼檔方式設定認證資訊,只需將使用者識別帳號和密碼寫入密碼檔 "conf/passwd" ,設定 "password-db = passwd" 。見圖「Set configuration of repository」與「Set password of repository」。注意, Subversion server 一經啟動便成為一個網路服務,任何人都可以透過網路連線取得電腦中的專案內容,所以一定要用密碼管制。在個人用途或非公開的開發團隊中,更應為 Subversion server 設置網路防火牆,以阻絕外來使用者的存取企圖。
Set configuration of repository
圖5: Set configuration of repository
Set password of repository
圖6: Set password of repository

設定組態及密碼後,專案貯藏庫的建立工作便算完成。接下來測試是否可以存取專案貯藏庫。請先啟動 Subversion server 。接下來,此例中將專案貯藏庫放置在 "d:\repository\hello_world" ,且啟動 Subversion server 時已經指定 "d:\repository" 為 root 目錄,所以專案的 URL 應該是 "svn://localhost/hello_world/" ,就以此 URL 向 Subversion server 提出 (checkout) hello_world 專案,提出的內容,稱之為工作複本 (working copy) 。此例將工作複本放在 "d:\src\hello" 。見圖「Checkout a repository」。如果一切無誤,那麼 Subversion 就會在 "d:\src\hello" 之中產生工作複本了。
Checkout a repository by svn
圖7: Checkout a repository by svn
Checkout a repository by TortoiseSVN
圖8: Checkout a repository by TortoiseSVN
軟體專案管理的起點

軟體專案管理之中,充斥了太多理論,有心提高軟體生產品質的使用者,不論是軟體開發團隊的 PM ,亦或是習慣為自己使用而動手寫程式的 programmer ,也許都被那些軟體專案管理的理論弄得昏頭轉向。然而它們的起點,都是從版本控制著手的。透過這篇快速入門,從無到有的設置服務並建立空白專案,只要三個步驟就完成了,相信可以讓各位了解建立一個版本控制服務其實並不難。接下來,我預計還會再完成一篇使用文章,以編寫程式碼的過程為實例,說明 svn 和 TortoiseSVN 的實用功能。
[+]Roodo Cliip  回复  更多评论
  
# re: 每日一学 2009/05/08 怎样安装配置 subversion server + apache
2009-05-08 17:32 | Blog of JoJo
首先下载Subversion Windows版本的服务器软件,下载地址如下:
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
文件为svn-1.2.0-setup.exe,然后执行安装,安装目录如:d:\develop\subversion,然后设置一下系统的环境变量Path,将Subversion的bin路径加入到系统的path中。

创建Subersion库:首先建立一个目录存放Subversion的库,在该库中存放所以的Subversion项目,如D:\repository\subversion

创建一个新的Subversion项目。
只需执行: svnadmin create D:\repository\subversion\projectnamePHPChina
下面需要设置项目的用户信息,只需打开Subversion项目conf目录下passwd文件添加新的用户即可,
[users]
admin = mypassword
接下来是设置项目的一些其他信息,打开conf目录下的svnserve.conf文件,然后进行如下设置即可:
[general]
anon-access = read
auth-access = write
password-db = passwd
realm = projectname

启动Subversion,这里可以通过命令行启动,最好使用SVN Service Wrapper,你可以通过以下地址下载:http://dark.clansoft.dk/~mbn/svnservice,将SVNService.exe拷贝到Subversion安装主目录的bin目录下即可,然后执行以下命令,就可以将Subversion以windows服务方式启动啦。
SVNService -install -d -r D:\repository\subversion

向Subversion中导入项目:现在我们需要将项目导入到Subversion的库中,只需执行一下命令: svn import d:\projectname svn://localhost/projectname -m “initial import” –username admin –password mypassword
这样项目就导入到subversion库中啦。

将项目导出:从Subversion项目中导出项目也很简单,只需执行以下操作:
svn co svn://localhost/projectname –username admin –password mypassword  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 

<2009年5月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

常用链接

留言簿(6)

随笔档案

文章分类

文章档案

新闻分类

新闻档案

相册

收藏夹

搜索

  •  

最新评论

阅读排行榜

评论排行榜