svn server 安装

Redhat系列:redhat9、redhat advance server、fedora、centOS

二、所需软件
Ø           Apache 2.0.59(http://archive.apache.org/dist/httpd/httpd-2.0.59.tar.gz)
Ø           Openssl 0.9.8e(http://www.openssl.org/source/openssl-0.9.8e.tar.gz)
Ø           Subversion 1.4.3(http://subversion.tigris.org/downloads/subversion-1.4.3.tar.gz)
注:
windows下的二进制包
http://subversion.tigris.org/downloads/svn-win32-1.4.3.zip
Linux下的附加包,安装时可以不使用此包,
http://subversion.tigris.org/downloads/subversion-deps- 1.4.3.tar.gz)


三、安装过程
Ø         创建svn专用的系统帐户
[root@]# useradd svn –d /home/svn
[root@]# passwd svn (使用此命令来更改用户svn的口令)
[root@]# chown –R svn /home/svn
然后退出root用户,以svn的身份登录。

Ø         创建目录结构
[svn@]# cd /home/svn
[svn@]# mkdir pkgs
[svn@]# mkdir pkgs/open_ssl_dir
[svn@]# mkdir apache2

Ø         将下载的apache/openssl /subversion安装包放在/home/svn/pkgs目录下

Ø         创建自动编译的脚本文件/home/svn/pkgs/svn_install.sh
保存后将文件属性设为可执行[svn@]# chmod 777 svn_install.sh
然后运行该脚本文件[svn@]# ./svn_install.sh,将会自动编译

/home/svn/pkgs/svn_install.sh
#!/bin/sh
export SRC_HOME="/home/svn/pkgs"
export APACHE_VERSION="2.0.59"
export APACHE_HOME="/home/svn/apache2"
export OPEN_SSL_DIR="/home/svn/pkgs/open_ssl_dir"
export OPEN_SSL_VERSION="0.9.8e"
export SUBVERSION_VERSION="1.4.3"

echo ">> Install open_ssl"
cd ${SRC_HOME}
tar xvzf openssl-${OPEN_SSL_VERSION}.tar.gz
cd openssl-${OPEN_SSL_VERSION}
./config --prefix=${SRC_HOME} --openssldir=${OPEN_SSL_DIR}
make
make install

echo ">> Install Apache2"
cd ${SRC_HOME}
tar zxf httpd-${APACHE_VERSION}.tar.gz
cd httpd-${APACHE_VERSION}
./configure --prefix=${APACHE_HOME} --enable-suexec \
--enable-so --with-suexec-caller=bin \
--enable-ssl --with-ssl=${OPEN_SSL_DIR} --enable-cache \
--enable-ext-filter --with-z=/usr/include --enable-dav \
--with-layout=Apache --enable-headers=shared \
--enable-auth --enable-alias --enable-so --enable-proxy=shared \
--enable-proxy-http=shared --enable-rewrite=shared --enable-deflate=shared
make
make install

echo ">> Install SVN"
cd ${SRC_HOME}
tar zxf subversion-${SUBVERSION_VERSION}.tar.gz
cd subversion-${SUBVERSION_VERSION}
./configure --prefix=/home/svn/subversion-${SUBVERSION_VERSION} \
--with-zlib \
--with-apr=${APACHE_HOME} \
--with-apr-util=${APACHE_HOME} \
--with-apxs=${APACHE_HOME}/bin/apxs
make
make install

Ø         配置系统PATH
编辑/home/svn/.bashrc,在最后加入下面内容:

export SVNHOME=/home/svn
export PATH=$PATH:$SVNHOME/apache2/bin
export PATH=$PATH:$SVNHOME/subversion-1.4.3/bin

四、配置SVN Server
Ø         建立代码仓库(假设建立一个mylucysvn的仓库)
[svn@]# mkdir /home/svn/repos
[svn@]# svnadmin create --fs-type fsfs /home/svn/repos/mylucysvn

Ø         配置apache
注意:以apache方式访问时,在eclipse中建立SVN连接信息时需要使用http://xxx:xx/xxx/的方式,而不是svn://xxx:xx/xxx/
编辑/home/svn/apache2/conf/httpd.conf,找到如下相应的section,并修改。



安装过程中,64位机引起的  libexpat.so: could not read symbols: File in wrong format 问题解决办法如下:
apache:
    apache在执行./configure后,相关的配置参数保存在MakeFile文件,该文件存放在   /httpd-2.0.59/srclib/apr-util

    1. APRUTIL_LIBS = /usr/lib/libexpat.la 改成  /usr/lib64/libexpat.la
   
    重新make 如果还不行,再试下如下:

   1、删除安装目录下的configure文件,在我的环境中是httpd-2.0.59/configure

  2、删除“httpd-2.0.59/srclib/apr-util/configure”

  3、通过以下命令重建编译文件(以下命令在http-2.26/目录下运行)。


svn:
# rm -rf /usr/lib/libexpat.so
# cp /usr/lib64/libexpat.so /usr/lib/libexpat.so









安装完成后配置和测试
-------------------------------
# 2、安装完毕 编辑 apache 支持 svn

# 新建库 会自动创建 /home/svn 目录
/usr/local/svn/bin/svnadmin create /home/svn

# svn目录权限给 apache 用户
chown -R daemon.daemon /home/svn

vi /usr/local/apache2/conf/httpd.conf
/LoadModule dav_svn_module
i<Location /svn>
DAV svn
SVNPath /home/svn
AuthType Basic
AuthName "Welcome to SVN"
AuthUserFile /home/svn/conf/passwd
AuthzSVNAccessFile /home/svn/conf/authz
Require valid-user
</Location>

- -

# 3、配置SVN

# 添加用户 (切记 第一次使用 参数 -c 之后如果继续使用-c则账户信息将全部丢失)

/usr/local/apache2/bin/htpasswd -c /home/svn/conf/passwd sheng01
/usr/local/apache2/bin/htpasswd /home/svn/conf/passwd sheng02
/usr/local/apache2/bin/htpasswd /home/svn/conf/passwd sheng03

/usr/local/apache2/bin/apachectl restart

# 配置用户权限
vi /home/svn/conf/authz

[groups]
group_admin = sheng01
group_all = sheng01,sheng02,sheng03

[/]
@group_admin = rw

sheng01 = rw

[/public]
@group_all = rw

sheng01 = rw
sheng02 = rw
sheng03 = rw

[/data/sheng01]
sheng01 = rw

[/data/sheng02]
sheng02 = rw

[/data/sheng03]
sheng03 = rw


# 4、测试 svn

http://ip/svn = /
http://ip/svn/public = /public
http://ip/svn/data/sheng01 = /data/sheng01

http://ip/svn 测试


rm -rf /usr/bin/svnadmin
rm -rf /usr/sbin/svnadmin
rm -rf /usr/bin/svnlook
rm -rf /usr/sbin/svnlook

ln -s /usr/local/svn/bin/svnadmin /usr/bin/svnadmin
ln -s /usr/local/svn/bin/svnadmin /usr/sbin/svnadmin
ln -s /usr/local/svn/bin/svnlook /usr/bin/svnlook
ln -s /usr/local/svn/bin/svnlook /usr/sbin/svnlook

你可能感兴趣的:(apache,SVN,redhat,centos,subversion)