近期公司服務器重置系統,需要重裝svn,一下子頭大了,因為對linux系統不是特別熟悉,查了一些資料,終於搞定,現與大家分享下如何在ubuntu下安裝svn,也是給自己寫個筆記,當下次在裝svn的時候,當作參考
工具/原料
ubuntu
第一步:安裝apache
網上很多介紹,安裝apache執行命令:sudo apt-get install apache2
但遺憾的是,執行完後,有異常,下載的數據源找不到
更新數據源,執行命令:sudo apt-get update
數據源更新完成後,在執行命令:sudo apt-get install apache2,第一步的異常已經沒有了,可以成功安裝
安裝結束後,會自動啟動apache,但是啟動的時候報錯了,見下圖,因為apache安裝默認使用的是80端口,但是80端口已經被佔用了,那接下來我們需要修改下apache端口
apache2默認安裝在/etc/apache2目錄下,打開該目錄,能找到ports.conf文件,打開該文件,把所有的80端口改成81,443改成444
然後看文件註釋上說要/etc/apache2/sites-enabled/000-default文件,打開文件後,把
修改完成後,重新啟動apache,執行命令:service apache2 restart,會看到下圖提示,此時我們需要修改下:/etc/apache2/apache2.conf文件
打開/etc/apache2/apache2.conf文件,添加上一句:ServerName localhost
再次重啟後錯誤消失。
打開網頁,輸入ip:81地址,看到index.html頁面顯示出來了,apache2成功啟動
安裝subversion
執行命令:sudo apt-get install subversion
執行命令:sudo apt-get install libapache2-svn
執行完上述2個命令,svn已經安裝完成,接下來需要創建版本庫,按照下面步驟:
1、創建一個svn版本庫的安裝路徑,我安裝在/mnt/svn下,
執行命令:mkdir repos
2、執行命令:svnadmin create /mnt/svn/repos
3、執行命令:chmod 777 -R /mnt/svn/repos
配置用戶名、密碼,執行命令:htpasswd -m /mnt/svn/passwd admin,提示如下異常,htpasswd沒有安裝
按照異常提示,執行命令:apt-get install apache2-utils
安裝成功後,在執行命令:htpasswd -m /mnt/svn/passwd admin,可以成功執行,輸入2次密碼,admin賬號即創建完成,創建成功後,可以看到在/mnt/svn下面多了一個passwd文件,該文件存儲了所有訪問svn的賬號信息,如果需要修改密碼,也是重複執行命令htpasswd -m /mnt/svn/passwd admin即可
配置用戶組、權限,在/mnt/svn目錄下創建文件auth,編輯該文件,存儲如下內容:
[groups]
developers=admin,liusx
[/]
@developers=rw
*=r
在svn目錄下的完整結構如下
auth:存儲用戶權限組
passwd:存儲用戶名、密碼
repos:版本庫,用於svn訪問
repository是重置系統之前創建的版本庫,也是我們接下來要集成進來的,需要說明一下,auth、passwd這兩個文件名稱、路徑可以自定義,之所以可以自定義,是因為在apache2中,我們可以指定這兩個文件的路徑和名稱
將svn配置到apache中
找到文件:/etc/apache2/mods-enabled/dav_svn.conf,打開編輯,加入如下代碼:
DAV svn
SVNParentPath /mnt/svn
AuthType Basic
AuthName "subversion repository"
AuthUserFile /mnt/svn/passwd
AuthzSVNAccessFile /mnt/svn/auth
Require valid-user
SVNParentPath:指向版本庫所在目錄,在該例中,我們創建的repos版本庫,存儲在/mnt/svn目錄下,這裡設置為:SVNParentPath /mnt/svn
AuthUserFile:指向用戶密碼配置文件
AuthzSVNAccessFile:指向用戶權限配置文件
如果需要配置多個版本庫,我們在/etc/apache2/mods-enabled/dav_svn.conf中,在多複製一份出來,設置好對應的文件路徑即可,在我們的上述例子中,我們因為重置系統需要恢復原來的svn所存儲的工程,那麼該步就很重要,否則之前的工程可全都不見啦。。。
啟動測試
重啟下apache2,執行命令:service apache2 restart
啟動成功後,我們可以測試下新部署的svn有沒有成功,打開瀏覽器,輸入地址:在彈出框中輸入用戶名,密碼,見到下圖,表示svn部署成功