Subversion 1.4.3 + Apache 2.2.4 for Linux 安裝

來源:互聯網
上載者:User

 

經過幾天努力,終於把Subversion + Apache在Linux上安裝成功,能順利地通過http協議和svn協議訪問版本庫了,這裡和大家分享。

安裝環境:
OS: RedHat AdvanceServer 4 Update 4

需要軟體:
SVN: Subversion 1.4.3
HTTPD: Apache Httpd 2.2.4
APR: Apache Apr 1.2.8
APU: Apache Apr-Util 1.2.8

1. 下載原始碼:
到各自的官方網站下載相應的原始碼的tar.gz包,解包後準備編譯安裝:

2. 編譯原始碼:
按下面的順序編譯原始碼:
(1) Apache Apr
# cd apr-1.2.8
# ./configure --prefix=/usr/local/apr
# make
# make install

(2) Apache Apr-Util
# cd apr-util-1.2.8
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make
# make install

(3) Apache Httpd
# cd httpd-2.2.4
# ./configure --prefix=/usr/local/apache2 --enable-dav --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
# make
# make install

(4) Subversion
# cd subversion-1.4.3
# ./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache2/bin/apxs
# make
# make install

以上的編譯通常情況都能順利編譯成功,得到相應的可執行程式。

檢查WebDav for SVN 模組:
# cd /usr/local/apache2/modules
檢查 mod_dav_svn.so 和 mod_authz_svn.so,如果上述第2步編譯成功,這兩個模組應該可以看到。

3. 建立svn使用者:
# groupadd svn
# useradd -g svn svn
以後程式碼程式庫的建立維護等,都用這個帳戶來操作。

4. 建立版本庫:
以svn使用者登入

準備環境變數:
$ SVN_HOME=/usr/local/subversion
$ export SVN_HOME
$ PATH=$PATH:$SVN_HOME/bin
$ export PATH

上述命令建立了版本庫sandbox,用於測試:
$ svnadmin create --fs-type fsfs sandbox

還可以再建立工程的版本庫:
$ svnadmin create --fs-type fsfs projects

建立啟動Subversion的指令碼:
$ echo '/usr/local/subversion/bin/svnserve -d -r /home/svn/' > startup.sh
$ chmod +x startup.sh
$ ./startup.sh

將啟動指令碼放置到開機自動啟動指令碼中:
以root身份修改檔案:/etc/rc.d/rc.local,添加以下文字:
su -c /home/svn/startup.sh svn

5. 配置Apache Httpd
# cd /usr/local/apache2/conf
# vi httpd.conf

載入WebDav for SVN模組: 

#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

添加最後兩行(預設編譯後,configure會自動加上):
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

修改啟動httpd的預設使用者:

#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.  
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
#User daemon
#Group daemon
User svn
Group svn
</IfModule>

將執行httpd的使用者和組設為svn,這樣做是為了讓httpd進程能訪問版本庫的資料。

在Apache Http Server裡配置虛擬機器主機:
將httpd.conf中的虛擬機器主機的注釋去掉,然後編輯/usr/local/apache2/conf/extra/httpd-vhost.conf。


# Virtual hosts
Include conf/extra/httpd-vhosts.conf

添加虛擬機器主機svn.yourcompany.com,當然,這個主機名稱需要使用你自己的網域名稱。
# vi /usr/local/apache2/conf/extra/httpd-vhost.conf


<VirtualHost *:80>
    ServerAdmin webmaster@svn.yourcompany.com
    ServerName svn.yourcompany.com
    ErrorLog logs/svn.yourcompany.com-error_log
    CustomLog logs/svn.yourcompany.com-access_log common
    <Location />
       DAV svn
       SVNListParentPath on
       SVNParentPath /home/svn
    </Location>
</VirtualHost>

 

 這樣配置的目的是可以使用 http://svn.yourcompany.com/sandbox 或 http://svn.yourcompany.com/projects 這樣的URL來供各種用戶端通過http協議訪問該版本庫中的檔案。

6. 使用者認證和授權
使用者認證是為了驗證訪問SVN的使用者身份,授權是為了約束使用者的許可權,約束使用者讀寫每個目錄或檔案的許可權,請參閱SVN相關的文檔。通過http協議的認證和通過svn協議的認證略有不同,需要注意。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.