2010年4月19日 星期一

在 Ubuntu 中架設 SVN Server (+SSL)

前陣子成功在 Ubuntu 下架設 SVN Server,在此整理一下安裝步驟



裝好 Ubuntu 後 (我是裝 Ubuntu9.10)

step 1:
用 Synaptic 套件管理程式管理程式安裝下面的套件
apache2
libapache-svn
subversion
(安裝上述三個時會列出幾個關聯的套件問你是否一併安裝,請選是)
(也可以用指令的方式安裝)

step 2:
建立 svn root目錄
$sudo mkdir -p /opt/svnroot/
註:
1)後面的路徑請改成實際想放的路徑
2)sudo 是用管理員權限執行後面的指令的意思

step 3:
將存取檔授予 apache2
$sudo chown -R www-data:www-data /opt/svnroot/

step 4:
新建一個檔案庫
$sudo svnadmin create /opt/svnroot/myRepos
(如果有檔案庫的備份,也可以直接放到 /opt/svnroot/ 下,但要再執行一次 step 3)

step 5:
新增使用者資訊
$sudo htpasswd [-參數] /opt/svnroot/htpasswd username
依照指示輸入使用者密碼即可。
/opt/svnroot/htpasswd 這個可以自己改成想要的路徑與檔名
參數:
-c:表示是否要新建檔案,舊有檔案內容會完全刪除,適用於第一次建立檔案時
-m:密碼以 MD5 進行編碼

若要再加帳號,或是修改某帳號的密碼,也都是用這個指令(記得不要加 -c 參數)

step 6:
檢查 /etc/apache2/ports.conf
預設應該有這一段

# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443

若沒有的請自行加上
註:若想改變 ssl 的 port 號,可以將上面的 443 改成你想要的 port 號

step 7:
修改 /etc/apache2/sites-available/default-ssl,在 下加入

DAV svn
SVNParentPath /opt/svnroot/
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /opt/svnroot/htpasswd
#AuthzSVNAccessFile /opt/svnroot/authz
Require valid-user

這裡的 /svn 可以自己改,這是在設定 svn url 上的 root 路徑
SVNParentPath /opt/svnroot/ 是指在 /opt/svnroot/ 下的每一個資料夾都是檔案庫的意思
若要個別指定檔案庫,則要使用 SVNPath
/opt/svnroot/htpasswd 請改為實際的密碼檔
AuthzSVNAccessFile 是若要做權限管理時需要設的
註:
1)若想改變 ssl 的 port 號,除了 step 6 要改之外,也要將這裡 內的 port 號改為你想要的
2)這個部份的設定可以參考 /etc/apache2/mods-available/dav_svn.conf 內的說明

step 8:
啟用 SSL
$sudo a2enmod ssl
註:這裡也會提示參考 /usr/share/doc/apache2.2-common/README.Debian.gz 了解 SSL 的一些設定

step 9:
啟用 /etc/apache2/sites-available/default-ssl 的設定
$sudo a2ensite default-ssl

step 10:
啟動 apache
$sudo /etc/init.d/apache2 start
註:重新啟動 apache 的語法是
$sudo /etc/init.d/apache2 restart

以上就能使用了,SSL 憑證是用 ubuntu 自帶的
若 SSL 想用自己的憑證,則 /etc/apache2/sites-available/default-ssl 還要做另外一些設定
SSLCertificateFile:指定 server 憑證檔
SSLCertificateKeyFile:指定 key 檔
SSLCACertificateFile:指定根憑證檔(這是只有當你的憑證不是由公開被信任的 CA 所發的時,才需要指定)

沒有留言:

張貼留言

廣告訊息會被我刪除