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 [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
######################################
创建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