ubuntu下apache+subversion版本控制器源代码安装

一、安装所需要的库

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"

修改为

DocumentRoot "/data/svnroot"

<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 admin@abc.com

    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

######################################

创建passwd及创建用户 

/usr/local/apache2/bin/htpasswd -c /data/svndataconf/passwd user1

新建用户

/usr/local/apache2/bin/htpasswd -m /data/svndataconf/passwd user2

创建导入库中的初始数据

mkdir /data/svnroot

touch /data/svnroot/index.html

chown -R apache:apache /data/svnroot

mkdir /data/svndataconf/import

mkdir /data/svndataconf/import/trunk

mkdir /data/svndataconf/import/data

mkdir /data/svndataconf/import/result

touch /data/svndataconf/import/trunk/test.txt

创建库:/usr/local/subversion/bin/svnadmin create /data/svnroot/cms

导入初始文件夹:/usr/local/subversion/bin/svn import /data/svndataconf/import/ file:///data/svnroot/cms/ -m "cms subversion 1"

给权限:chown apache:apache -R /data/svnroot/

重启apache /usr/local/apache2/bin/apachectl restart