搭建基於SSL協議的svn服務器


嚴格來說配置管理不屬於CI的范疇,但我個人覺得作為一個流程改進實踐,配置管理做的越好就越有利於CI實施。如何進行配置管理,不是這篇文章的重點。我要介紹的是配置管理兩個重點(配置策略與版本控制)中的版本控制。以版本管理工具svn的使用為出發點,文中主要介紹如何搭建svn服務器。

svn(subversion)是一款著名的開源版本控制軟件,我相信很多開發人員都在使用它來進行代碼管理。這里可以了解更多信息http://subversion.apache.org/。你可能知道如何使用svn來進行日常的代碼check in, check out,但並不一定知道如何去搭建一個svn服務器。這篇博客主要就是說這個。以下所有的操作都是在Ubuntu上進行的,所以你可能需要知道一些Ubuntu上的知識。

搭建svn的第一步當然是安裝了,在Ubuntu下你可以這樣做

sudo apt-get install subversion libapache2-svn libapache-mod-dav apache2

如果安裝失敗是因為找不到安裝包,請先運行apt-get install update. 

第二步是啟用SSL,

sudo a2enmod ssl
sudo sh -c "echo 'Listen 443' >> /etc/apache2/ports.conf"

因為SSL的默認端口是443端口,我們把它添加到apache的端口配置文件中。

第三步是生成SSL的認證,這里我們需要先安裝SSL的認證服務

sudo apt-get install ssl-cert
sudo mkdir /etc/apache2/ssl
sudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf  /etc/apache2/ssl/apache.pem

第四步,創建站點,這里的$SITENAME環境變量,給一個你自己喜歡的名字就可。

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/$SITENAME
sudo vim /etc/apache2/sites-available/$SITENAME

然后修改站點配置文件如下: 

下一步是配置一個svn訪問的賬戶:

sudo htpasswd2 -c -m /etc/apache2/dav_svn.passwd $AUTH_USER

然后重啟apache服務來啟動站點

sudo a2ensite $SITENAME
sudo /etc/init.d/apache2 restart  

如果失敗了,可能是虛擬主機沒有被apache找到,請添加這一行 ServerName $SERVERNAME 到 /etc/apache2/apache2.conf 文件中。

第五步就到創建svn知識庫的時候了,先創建一個目錄用於存放svn配置信息,再創建一個環境變量$REPOS用於存放內容,並改變其訪問權限

sudo mkdir /var/svn
sudo export REPOS=你的知識庫路徑
sudo svnadmin create /var/svn/$REPOS
sudo chown -R www-data:www-data /var/svn/$REPOS
sudo chmod -R g+ws /var/svn/$REPOS

第六步添加基本的認證信息,$AUTH_USER給個自己喜歡的用戶名即可。

sudo htpasswd2 -c -m /etc/apache2/dav_svn.passwd $AUTH_USER

並修改WebDav和svn配置文件 sudo vim /etc/apache2/mods-available/dav_svn.conf 添加如下內容

DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
SSLRequireSSL

並取消這兩行的注釋

#<LimitExcept GET PROPFIND OPTIONS REPORT>
#</LimitExcept>

唉!配置svn服務器還真是麻煩!不過幸好這已經是最后一步了。剩下的我們就重啟一下apache來啟用我們的配置吧。

sudo /etc/init.d/apache2 restart

如果一切正常,並且你沒有敲錯什么字母的話,apache應該能正常啟動。那么我們就測試一下

 在你的瀏覽器地址欄輸入:https://localhost/svn/你的知識庫名稱。應該會有彈出提示輸入用戶名和密碼對話框。通過認證后,你會看到如下界面(test.html是我自己導入的,默認應該沒有任何文件)。

通常上面的步驟沒有出錯的話,這個界面會正常顯示。如果失敗,那么大多數情況是403錯誤,請檢查端口和目錄的權限。(PS:http協議我沒有配置成功,可惜了)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM