红联Linux门户
Linux帮助

Centos使用源码安装subversion apache-httpd

发布时间:2016-04-20 10:00:15来源:linux网站作者:野火冷魂

需要用到的安装包有:

subversion-1.9.3.tar.gz
httpd2-2.4.20.tar.gz
apr-1.5.2.tar.gz
sqlite-autoconf-3120100.tar.gz
zlib-1.2.8.tar.gz
pcre-8.37.tar.gz


然后解压缩上面那些压缩包。如果在linux中,看到的应该是这个样子。

Centos使用源码安装subversion apache-httpd

他们的依赖关系是这个样子

Centos使用源码安装subversion apache-httpd


假设的所有的工具的安装目录都是/usr/local/xxxx


安装apr,进入apr的解压缩目录apr-1.5.2后,执行以下命令

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


安装apr-util,进入apr-util的解压缩目录apr-util-1.5.4后,执行以下命令

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


安装sqlite,进入sqlite的解压缩目录sqlite-autoconf-3120100后,执行以下命令

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


安装zlib,进入zib的解压缩目录zlib-1.2.8后,执行以下命令

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


安装subversion,进入subversion的解压缩目录subversion-1.9.3后,执行以下命令

./configure --prefix=/usr/local/subversion --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-sqlite=/usr/local/sqlite --with-zlib=/usr/local/zlib --enable-mod-activation && make && make install

1

说明:--with-*的参数指定编译的时候需要哪些工具;--enable-mod-activation是必须的,可以编译安装后生成mod_dav_svn.so和mod_authz_svn.so文件,这两个文件是在和httpd集成的时候所需要的。


至此,subversion已经安装完成,下面需要安装httpd,然后让subversion和httpd进行集成,达到可以加密用户密码和使用http协议访问SVN库的目的。


安装pcre,进入pcre的解压缩目录pcre-8.37后,执行以下命令

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


安装httpd,进入pcre的解压缩目录httpd2-2.4.20后,执行以下命令

./configure --prefix=/usr/local/apache --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --enable-dav --enable-so

--enable-dav --enable-so可以方便加载mod_dav_svn.so,mod_authz_svn.so文件。但是究竟是不是必须的呢,并没有验证。


现在httpd也已经安装好了。接着就是创建SVN库,并且配置httpd.conf文件了。

为了方便调用svn和httpd中的命令,将他们加入到环境变量中。

vim /etc/profile

在文件的最末尾加上

PATH=$PATH:$/usr/local/subversion/bin:$/usr/local/apache/bin

退出编辑之后,执行

source /etc/profile

是环境变量立即生效。


使用svnadmin创建svn仓库,假设仓库创建在/svnrepos目录下面,仓库名字叫testrepo

mkdir /svnrepos
svnadmin create /svnrepos/testrepo

配置httpd.conf文件。

vim /usr/local/apache/conf/httpd.conf

在文件末尾加上

#加载svn的两个so文件
LoadModule dav_svn_module /usr/local/subversion/libexec/mod_dav_svn.so
LoadModule authz_svn_module /usr/local/subversion/libexec/mod_authz_svn.so
#配置svn仓库
<Location /testrepo>
DAV svn
SVNPath /svnrepos/testrepos
AuthzSVNAccessFile /svnrepos/svnrepos/conf/authz
AuthType Basic
AuthName "testrepo"
AuthUserFile /hkcts/svnrepos/conf/passwd
Require valid-user
</Location>


SVN库的基本配置
修改testrepo库下面的配置文件/svnrepos/testrepo/conf/svnserve.conf,在[general]标签下面添加一下配置

anon-access = none
auth-access=write
password-db=/hkcts/svnrepos/conf/passwd
authz-db=/hkcts/svnrepos/conf/authz

当subversion和httpd集成的时候,subversion就作为了httpd的一个组件,添加用户、重置用户密码就通过httpd的命令htpasswd来执行。添加用户和修改用户是同一个命令,新建一个用户之前,最好检查一下是否已经含有需要创建的用户,要不然一下就重置了这个用户的密码。

htpasswd -b AuthUserFile指定的passwd文件 用户名 用户密码


我们新建一个用户test,密码是123456,在/svnrepos/testrepo/conf目录下执行命令

htpasswd -b passwd test 123456

给test用户赋予所有目录的权限

[/]
test = rw


启动httpd服务

apachectl start

如果你的命令正常启动,恭喜你运气很好。
我的系统在启动httpd的时候出现了一个错误是undefined symbol: dav_register_privoder,后来在加载两个so文件之前,首先加载了mod_dav.so问题就解决了。在/usr/local/apache/conf/httpd.conf中修改。

#这句话在httpd.conf中已经存在,可以使用查找命令查找一下,然后直接取消注释就好
#需要放到LoadModule dav_svn_module.....那两句话前面
LoadModule dav_module modules/mod_dav.so

然后再次启动

apachectl stop
apachectl start

你的svn路径已经变成了

http://127.0.0.1/testrepo

OVER!


本文永久更新地址:http://www.linuxdiyf.com/linux/19916.html