centos下安裝apache + subversion(轉)

目錄:
一.安裝apr跟apr-util
二.安裝apache服務器
三. 安裝subversion
四. 配置subversion
五. 配置apache的httpd.conf
六. 驗證安裝
七.導入數據到資料庫
八.版本庫服務器的同步(新加入的)
附:安裝過程中遇到的問題
 

一.安裝apr、apr-util跟zlib
1.下載apr跟apr-util
apr-1.3.3.tar.gz apr-util-1.3.4.tar.gz zlib-1.2.3.tar.gz
2.解壓
   tar zvxf apr-1.3.3.tar.gz
   tar zvxf apr-util-1.3.4.tar.gz
   tar zvxf zlib-1.2.3.tar.gz
3.安裝
   cd apr-1.3.3
   ./configure --prefix=/usr/local/apr
   make && make install

   cd apr-util-1.3.4
   ./configure   --with-apr=/usr/local/apr
   Make && make install

   cd zlib-1.2.3
   ./configure   --prefix=/usr/local/zlib
   Make && make install

二.安裝apache服務器: 
1. 下載最新的apache 2.2.9
httpd-2.2.9.tar.gz
2.解壓
tar zvxf htt-2.2.9.tar.gz
3. 安裝
   ./configure \
“--prefix=/usr/local/apache2” \
“ --enable-so” \
“--enable-dav” \
“--with-apr=/usr/local/apr/bin/apr-1-config” \
“--with-apr-util=/usr/local/apr/bin/apu-1-config”
   make
   make install

注意:--prefix指定安裝目錄,注意一定要加--enable-so是核心能夠裝載DSO和--enable-dav是安裝mod_dav_svn.so跟mod_authz_svn.so這兩個模塊
4.測試
   打開瀏覽器輸入http://服務器ip   如果出現
It Works!
  Apache安裝成功

三. 安裝subversion
1. 下載最新的subversion-1.5.2
subversion-1.5.2.tar.gz
2. 安裝
   ./configure \
“--prefix=/usr/local/subversion” \ 
“ --with-apxs=/usr/local/apache2/bin/apxs” \
“--with-apr=/usr/local/apr/bin/apr-1-config” \
“--with-apr-util=/usr/local/apr/bin/apu-1-config” \
“--with-ssl” \
“--with-zlib=/usr/local/zlib” \
“--enable-maintainer-mode”
make
make install

3. 爲了方便使用subversion的命令,將subversion安裝目錄下的bin目錄加入到Path中
vi /etc/profile
最後加入:
   SVN_HOME=/usr/local/subversion
PATH=$PATH:$SVN_HOME/bin:
export SUSBVERSION PATH

四. 配置subversion
1. 創建賬號密碼文件
htpasswd –c /data/svn/passwd.conf apache
輸入密碼,兩次確認
   注意:第一次設置用戶密碼要加入 –c 這個參數,以後就可以不用了
2. 創建資料庫
首先要創建一個資料庫(我使用單資料庫的方式),使用svnadmin增加資料庫
cd /usr/local/subversion/bin
    ./svnadmin create /data/svn/svnroot/www
到www下看是不是多了文件,多了就是說明創建成功
3.創建權限文件
   Touch –p /data/svn/authz.conf
   vi authz.conf 
[groups]   #組
Admin = apache #admin組成員
[ggg:/] #版本庫ggg的權限
@Admin = rw #admin組有讀寫的權限
test1 = rw #test1有讀寫的權限
[www:/] 
@Admin = rw
test2 = rw
   [/]
       * = r #svn父目錄所有人都與讀的權限
注意:最後的[/]這個要設置好了,這裏面的權限設置可以讓你對ggg和www的版本庫有相同的權限,一般不要也行,個人建議不要

五. 配置apache的httpd.conf
打開apache的conf/httpd.conf,安裝subversion後,apache的conf/httpd.conf文件會自動增加了模塊
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

相應的so文件也自動copy到了apache/modules。這些工作就不用自己動手了。

需要自己動手修改apache下的httpd.conf最後增加以下內容
【參數說明見下面的圖】


單個版本庫:
<Location /svn>
DAV svn
SVNPath /data/svn/svnroot/www
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /data/svn/passwd.conf  
AuthzSVNAccessFile /data/svn/authz.cong 

Require valid-user
</Location>

多個版本庫:
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath /data/svn/svnroot
AuthType Basic
AuthName " Subversion repository "
AuthUserFile /data/svn/passwd.conf
AuthzSVNAccessFile /data/svn/authz.conf
Require valid-user
</Location>


注意:
(1) 單個版本庫就是SVNPath /data/svn/svnroot/www跟./svnadmin create /data/svn/svnroot/www目錄要一樣,要不忙死你……【這個是對單個版本庫】,多個版本庫知道svn的主目錄,我這就是 SVNParentPath /data/svn/svnroot
(2) AuthzSVNAccessFile是權限控制文件,單個版本庫不需要,多個版本庫要設置不同版本庫的權限
(3) 目錄svnroot目錄的權限設置成755

注:下面的六、七是單個版本庫測試的效果,多個版本庫類似!

六. 驗證安裝
打開瀏覽器,輸入地址爲http://服務器ip/svn
出現登陸窗口,輸入用戶名跟密碼, 


如果可以正常打開如上頁面則說明安裝配置正常,可以正常使用了,在頁面上可以看到由於目前資料庫中沒有內容,因此看到的內容爲空。

七.導入數據到資料庫
Cd /usr/local/subversion/bin
./svn import /要導入的目錄 file:///data/svn/svnroot -m “說明文字”
重新打開瀏覽器,輸入地址http://服務器ip/svn,輸入用戶名密碼,出現


好了,成功!

八.版本庫服務器的同步

   1.單版本庫跟服務器目錄的同步:
進入到版本庫下的hooks下去
svn checkout file:///版本庫的目錄 /本地要取出的目錄
   Cd /data/svn/svnroot/www/hookd
   Vi post-commit

#!/bin/sh
SVN=/usr/local/subversion/bin/svn
WEB=/data/www #web目錄要更新同步的目錄
$SVN update --username apache --passwd 123456 $WEB    #這裏面的username跟password一定要有讀寫的權限

   Chmod 757 post-commit #給它可執行的權利 
   2.多版本更服務器目錄的同步
   進入到版本庫下的hooks下去
svn checkout file:///版本庫的目錄 /本地要取出的目錄
Cd /data/svn/svnroot/www/hookd
   Vi post-commit

#!/bin/sh
SVN=/usr/local/subversion/bin/svn
$SVN update --username apache --passwd 123456 /home    #裏面的username跟password一定要有讀寫的權限

   Chmod 757 post-commit #給它可執行的權利

注意:(紅色字體一定要注意)
1.svn checkout file:///版本庫的目錄 /本地要取出的目錄 ——>這步一定要做要不會同步修改的
2.目錄位置一定要對應好了,要不出現問題累死……




附:安裝過程中遇到的問題

1.編譯subversion時出現少expat庫
解決:下載expat-2.0.0.tar.gz安裝皆可
2.安裝subversion時,編譯到最後會出現一段
configure: WARNING: we have configured without BDB filesystem support
大概是不能創建db格式的版本庫
解決:這個沒什麼關係,一般不會有多大影響
3.安裝subversion時,make沒問題,make install時出現
/usr/local/src/subversion-1.5.2/subversion/svnversion/.libs/lt-svnversion: error while loading shared libraries: libexpat.so.1: cannot open shared object file: No such file or directory
意思是找不到libexpat.so.1這個文件
運行 whereis libexpat.so.1
libexpat.so: /lib/libexpat.so.0 /usr/local/lib/libexpat.so /usr/local/lib/libexpat.so.1
解決:vi   /etc/ld.so.conf
加入libexpat.so.1的目錄 /usr/local/lib/ 保存退出
運行ldconfig
4.【這個問題是我創建單個版本庫時遇到的】安裝好了後,瀏覽器打開http://服務器ip/svn,登陸出現不了頁面,出現:
<D:error> <C:error/> <m:human-readable errcode="2"> Could not open the requested SVN filesystem </m:human-readable> </D:error>
解決:這是httpd.conf裏的<Locate svn>中的SVNPath指向錯誤沒指到創建的資料庫
    第四步的最後我強調的東西
5.這是開始安裝時會出現的錯誤,安裝subversion時會出現找不到arp的問題
解決:在編譯subversion時加入
    --with-apr=/usr/local/apr/bin/apr-1-config
--with-apr-util=/usr/local/apr/bin/apu-1-config
6.插張訪問方式跟服務器安裝方式關係的介紹圖:




http://hi.baidu.com/gyl4802959/blog/item/fcfe7e02cb737a094bfb5196.html


http://www.cnblogs.com/agileryan/archive/2011/04/05/2005922.html

發佈了199 篇原創文章 · 獲贊 8 · 訪問量 88萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章