centos下安裝apache + subversion

來源:互聯網
上載者:User
目錄:
一.安裝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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.