天天看點

ubuntu下安裝基于Apache的SVN伺服器

Subversion是一個自由,開源的版本控制系統。在Subversion管理下,檔案和目錄可以超越時空。

Subversion将檔案存放在中心版本庫裡。這個版本庫很像一個普通的檔案伺服器,不同的是,它可以

記錄每一次檔案和目錄的修改情況。這樣就可以藉此将資料恢複到以前的版本,并可以檢視資料的

更改細節。正因為如此,許多人将版本控制系統當作一種神奇的“時間機器”[1] 。

subversion(svn)是近年來崛起的版本管理軟體,是cvs的接班人。目前,絕大多數開源軟體都使用

svn作為版本管理軟體。 本文的作業系統為ubuntu12.X以上版本。

一、安裝所需要的庫

1、sudo -s

apt-get install build-essential automake autoconf libtool libssl-dev libserf-1-1

2、下載下傳所需下載下傳源碼

httpd-2.2.19.tar.gz         http://httpd.apache.org/download.cgi

subversion-1.6.6.tar.gz         http://archive.apache.org/dist/subversion/

expat-2.2.0.tar.bz2         https://sourceforge.net/projects/expat/

apr-1.4.5.tar.gz         http://apr.apache.org/

apr-util-1.3.12.tar.gz           http://apr.apache.org/

zlib-1.2.5.tar.gz           http://zlib.net/fossils/

neon-0.28.2.tar.gz          http://www.webdav.org/neon/

二、安裝apache

1、安裝所需要的插件

tar zxvf apr-1.3.5.tar.gz

cd apr-1.3.5

./configure --prefix=/usr/local/apr && make && make install

cd ../

tar jxvf apr-util-1.3.7.tar.gz2

cd apr-util-1.3.7

./configure --with-apr=/usr/local/apr && make && make install

cd ../

tar jxvf expat-2.2.0.tar.bz2

cd expat-2.2.0

./configure && make && make install

cd ../

tar zxvf zlib-1.2.8.tar.bz

cd zlib-1.2.8

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

cd ../

2、安裝apache

tar jxvf httpd-2.2.11.tar.gz2

cd httpd-2.2.11

./configure --prefix=/usr/local/apache2 --enable-dav --enable-modules=so --enable-maintainer-mode --enable-rewrite --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config && make && make install

cd ..

啟動Apache服務:

/usr/local/apache2/bin/apachectl start

用浏覽器檢視http://localhost/,得到It works!

說明apache已經配置成功了。

3 安裝neon-0.28.2.tar.gz

tar zxvf neon-0.28.2.tar.gz

cd neon-0.28.2

./configure --prefix=/usr/local/neon

此時需修改Makefile檔案:

配置./src/Makefile,将CFLAGS = -g -O2 改成 CFLAGS = -fPIC -g -O2

make && make install

cd ../

4 安裝Subversion

tar jxvf subversion-1.5.0.tar.gz2

tar jxvf subversion-deps-1.5.0.tar.gz2

tar zxvf openssl-1.0.1o.tar.gz

cd subversion-1.5.0

rm -rf apr

rm -rf apr-util

./configure --with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-neon=/usr/local/neon --enable-maintainer-mode --with-zlib=/usr/local/zlib --with-openssl=/data/soft/openssl-1.0.1o

注:--with-openssl=/data/soft/openssl-1.0.1o 指向的是源碼包解壓的路徑,而不是安裝的路徑,否則會報錯。

make && make install

注:

1) 由于subversion-deps包裡的APR是0.9.x的,是以編譯svn時要删除從deps裡解壓出來的apr, apr-util,改而使用apache 2.2裡提供的;

2) ./configure的時候必須加上–with-neon=/usr/local/neon,否則會提示錯誤(安裝neon的時候強調過);

3) 檢視Apache的配置檔案:/usr/local/apache2/conf/httpd.conf

看到下面兩個子產品說明安裝成功

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
           

3.1

添加apache使用者

/usr/sbin/groupadd apache

/usr/sbin/useradd -g apache -s /usr/sbin/nologin apache

配置Apache的配置檔案httpd.conf,

修改httpd.conf檔案,将

User daemon
Group daemon
           

修改為

User apache
Group apache
           

修改svn站點的路徑

DocumentRoot "/usr/local/apache2/htdocs"
           

修改為

<Directory "/usr/local/apache2/htdocs">
           

修改為

<Directory "/data/svnroot">
           

查找

Options Indexes FollowSymLinks
           

修改為

Options -Indexes FollowSymLinks
           

  

按shift+g至httpd.conf最尾部,添加内容

<Location /svn>
DAV svn
SVNParentPath /data/svnroot
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /data/svndataconf/passwd
AuthzSVNAccessFile /data/svndataconf/auth
Require valid-user
</Location>
           

  

打開apache站點配置檔案extra/httpd-vhosts.conf

vi extra/httpd-vhosts.conf,到頁面最底部,删除初始站點配置資訊

輸入以下内容

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/data/svnroot"
ServerName svn.abc.com
ErrorLog "logs/svn.log"
</VirtualHost>
           

  

3.2 建立passwd檔案和auth檔案

mkdir /data/svndataconf/

chown -R apache:apache /data/svndataconf/

vi /data/svndataconf/auth

輸入以下内容

[groups]

[cms:/]
user1 =rw
           

  

轉載于:https://www.cnblogs.com/cnsong/p/7656027.html

繼續閱讀