一、準備工作:
到apache官方網站下載最新的subversion及httpd安裝包。後續可能還需要一些依賴
二、安裝步驟
1、安裝httpd
1) 解壓httpd tar zxvf httpd-2.2.21.tar.gz
2)進入cd httpd-2.2.21
3)執行後面的命令 ./configure --enable-dav --enable-so --prefix=/opt/apache/ (注意:前兩個參數一定要給)
執行到這一步可能會報一個:configure: error: no acceptable C compiler found in $PATH
當遇到這個錯誤的時候是因爲你的服務器上沒有安裝 c 編譯環境,這時你需要插入linux系統光盤,安裝上 gcc
(這裏只是舉一個例子,後續安裝過程中還會出現類似的問題,只要看準錯誤信息就能夠很快速的解決了)
4)執行 make
5)執行 sudo make install (注:sudo指以超級管理員的權限去執行這個命令,每一次需要輸入root用戶密碼,默認5分鐘超時)
6)進入 cd /opt/apache/bin 啓動apache ./apachectl start
打開瀏覽器http://localhost/如果有測試頁"It works!"出現則證明已經安裝成功
2、安裝subversion
1)解壓subversion tar zxvf subversion-1.7.1.tar.gz
2)進入subversion-1.7.1 cd subversion-1.7.1
3)執行命令 ./configure --with-apxs=/usr/local/apache/bin/apxs --prefix=/usr/local/subversion
--with-apr=/usr/local/apache --with-apr-util=/usr/local/apache --with-openssl --with-zlib
--enable-maintainer-mode
(注意:執行到這裏可能會報一個:configure: error: subversion requires openssl 或者類似的錯誤,彆着急,那是因爲subversion安裝
時需要一些依賴,可 能要早期的版本中這些依賴需要我們自己去下載,但是我使用的1.7已經不需要我們自己去下載了,你只需
要在subversion-1.7.1目錄中執行一下 ./get-deps.sh ,這樣就會自動下載並安裝這個些依賴了,但是別高興得太早,這些依賴都是
從國外的網站上面下載的,有些可能需要翻牆才能夠下載得下來,比如我在安裝時 zlib 這個依賴就下載不了,幾經周折才搞到手,
需要自己下載的依賴還得自己安裝,程序幫助我們下載的依賴是自己安裝的,還有一點,下載的依賴必須拷貝到相應的目
錄
subversion-1.7.1/build/generator/templates 然後進行安裝
./configure --enable-dav --enable-so --prefix=/opt/apache/ )
當所有都依賴裝好之後,再執行以上命令安裝subversion就沒問題了
4)執行命令 make
5)執行命令 sudo make install
3、創建倉庫
1)./svnadmin create /home/svnmanager/svn/ (注:svnmanager是指管理svn的linux用戶)
2)進入svn目錄,看是不是有些新的文件或者是目錄,如果有就證明創建成功了
4、svn配置
1)修改apache配置文件:httpd.conf文件,以實現用戶的訪問
vi /opt/local/apache/conf/httpd.conf
添加兩條語句 LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
在文件末尾添加如下語句
<Location /svn>
DAV svn
SVNPath /home/svnmanager/svn //svn 路徑
AuthType Basic //連接類型
AuthName "Subversion Repository" //
AuthzSVNAccessFile /home/svnmanager/svn/conf/authz
AuthUserFile /home/svnmanager/passwds //用戶配置文件
Require valid-user //認證方式
</Location>
2)重啓httpd
在目錄 /usr/local/apache/bin/ 下執行 sudo apachectl -k restart
在瀏覽器中訪問 http://localhost/svn,如果有東西顯示就說明成功
5、用戶權限管理
1)進入到 /opt/apache/bin
2)添加用戶 htpasswd –c /home/svnmanager/passwds user001
(注:第一次設置用戶時使用-c表示新建一個用戶文件。回車後輸入用戶密碼,完成對用戶的增加;以後每次加入新的用戶,就不需要使用-c)
htpasswd /home/svnroot/repository/authfile
3)分配權限 vi /home/svnmanager/svn/conf/authz
admin = user001
devs = user002,user003,user004
[svn:/]
@admin = rw
[svn:/folder001]
@devs = rw
[svn:/folder002]
@devs = rw
去掉以下幾行的註釋:
anon-access = read
auth-access = write
authz-db = authz
password-db = passwd
5)修改管理賬號
vi /home/svnmanager/svn/conf/passwd
[users]
user001=123456 //用戶名=密碼
6)修改執行權限及文件屬性chmod –R 755 /home/svnmanager/svn
chown -R daemon /home/svn/*
(可能會出現的錯誤:Can't open file 'svn/db/txn-current-locks':permission denied)
(注意:在前面的一系列操作中都有可能誤用root用戶權限操作,而導致svn客戶端不能訪問svn服務器,當發生這樣的錯誤之後只要把軟件
安裝目錄中的文件和目錄改爲管理svn的用戶就可以了,比如上面的 svnmanager 用戶。 但是svn倉庫的屬主必須是daemon用戶)
(可能會出現的錯誤:Permission denied: make_sock: could not bind to address [::]:80
Permission denied: make_sock: could not bind to address 0.0.0.0:80)
這個問題是怎麼解決的我忘了,如果上面的問題解決了這個好像也解決了 三、大功告成
設置完成之後重啓apache,subversion就可以用了