1.官網下載所需的文件,我在此使用的版本如下:
Httpd-2.2.22.tar.gz subversion-1.6.12.tar.gz subversion-deps-1.6.12
2.安裝apache
1) 將文件解壓到/usr/local下,然後執行#./configure –prefix=/usr/local/apache enable-dav –enable-so&& make && make install
2) 啓動apache,#/usr/local/apache/bin/apachectl start,在瀏覽器中輸入http://localhost,可以看到歡迎頁面,說明安裝成功。
3. 安裝svn
1)分別解壓subversion-1.6.12.tar.gz , subversion-deps-1.6.12到/usr/local下,解壓後的文件會自動合併爲一個文件夾subversion-1.6.12
2)刪除從deps裏解壓出來的apr, apr-util.執行#rm –rf apr #rm–rf apr-util.原因如下:SVN 依賴的APR版本要正確。如果Apache爲2.0.x,對應的APR版本應爲0.9.x;Apache爲2.2.x,對應的APR版本應爲1.2.x。 由於subversion-deps包裏的APR是0.9.x的,因此編譯svn時要刪除從deps裏解壓出來的apr, apr-util,改而使用apache 2.2裏提供的。(網上摘錄)
3)接着編譯安裝svn。#./configure –prefix=/usr/local/subversion –with-apxs=/usr/local/apache/bin/apxs–with-apr=/usr/local/apache/bin/apr-1-config –with-apr-util=/usr/local/apache/bin/apu-1-config&& make &&make install
安裝的時候會遇到這個問題:
我使用的是ubuntu,是因爲缺少兩個包:libssl-dev和libxml2-dev。直接用apt-get install安裝,不會報這樣的錯誤了。
然後再次編譯,又會遇到一個錯誤:
可以看到是因爲缺少expat包,網上有解決方法是安裝expat-1.95.8-8.2.1.i386.rpm和expat-devel-1.95.8-8.2.1.i386.rpm這兩個包。
因爲我用ubuntu,所以直接apt-get install libexpat-dev來搞定。
4) 最後執行#/usr/local/subversion/bin/svnserve - -version,看到有版本信息輸出,說明svn安裝成功了。
4. 配置svn
1) 首先創建數據倉庫test:
#mkdir/svn/repository
#/usr/local/subversion/bin/svnadmincreate /svn/repository/test
可以看到目錄下多了test,test裏面會有一些文件。
2) 然後添加用戶:
# /usr/local/apache/bin/htpasswd –cmb /svn/repository/authfilelvxiaobao lvxiaobao
可以看到在repository下生成了名爲authfiled 的文件,裏面保存的是用戶名和密碼
其中參數c的意思是創建文件的意思,如果是第一次添加用戶就要用到c,如果是繼續添加,就不要c了。
3) 然後是配置svn用戶的權限
可以找到在數據倉庫test下有個名爲conf的文件夾,編輯下面的authz,
添加
[test:/]
Lvxiaobao=rw
5. 配置apache
1)配置httpd.conf。#vim /usr/local/apache/conf/httpd.conf
首先看一下里面有沒有這兩行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
這是在上一步編譯的時候生成的,我這裏沒問題,順利進行。
然後找到
Userdaemon
Group daemon
把上述內容改成:
User apache
Group apach
(我的系統在安裝apache的時候未自動添加這個組和用戶,所以需自己添加一下)
然後繼續,在文件末尾添加:
可以看到註釋掉兩行,這兩行在網上的其他一些教程中有,但是我使用的時候總是在驗證的時候有問題,後來看了亮哥的配置,按照他的這麼寫了,用SVNPath代替掉SVNParentPath,然後就能自動尋找到authz,不必配置了。
最後,要修改數據倉庫的所有者爲apache:#chown –R apache:apache /svn/repository
6. 最後重啓apache服務和svn服務,在客戶端就可以用http://ip/test來訪問到svn了。
查看svn服務是否啓動:ps -ef|grep svnserve
啓動svn服務:/usr/local/subversion/bin/svnserve -r /svn/repository-d