CentOS6.2+Apache2.4.1+SVN1.7.3环境搭建

来源:互联网 发布:下载购物淘宝网 编辑:程序博客网 时间:2024/06/01 07:13
 

说明:

/root/dir_install    用于存放下载的安装包,以及解压以后的包           

/usr/local/apr      用于指定安装apr依赖包的路径

/usr/local/apu     用于指定安装apr-util依赖包的路径

/usr/local/svn1.7.3 用于指定安装subversion的路径

/usr/local/apache2  用于指定安装apache服务器的路径

/var/svn_data/conf   用于放svn访问的用户验证文件和用户权限配置文件

/var/svn_data/svnroot  用于指定svn创建的版本库路径

一、检测系统是否已经装有svn

rpm -q subversion

如已经安装,请先卸载(rpm -e xxxxxxx)如果有依赖的rpm包,则一层层卸载

可以使用svn --version检测是否已经卸载

二、检测系统是否已经安装httpd

rpm -q httpd

如果已经安装,先卸载(rpm -e xxxxxx),有依赖包的,依次卸载

可以使用httpd --version检测是否已经卸载

、下载apache运行环境依赖的包

1.apr包,下载地址:http://apr.apache.org/download.cgi

这边我下载的是 apr-1.4.6.tar.gz,放置在路径/root/dir_install/apr-1.4.6.tar.gz

tar zxvf apr-1.4.6.tar.gz 进行解压,生成apr-1.4.6

cd apr-1.4.6

./configure --perfix=/usr/local/apr

make && make install

安装完毕后,可以验证/usr/local/apr是否存在


2.par-uitil包,下载地址:http://apr.apache.org/download.cgi

这边我下载的是apr-util-1.4.1.tar.gz,放置路径/root/dir_install/apr-util-1.4.1.tar.gz

tar zxvf apr-util-1.4.1.tar.gz进行解压,生成apr-util-1.4.1

cd apr-util-1.4.1

./configure --perfix=/usr/local/apu --with-apr=/usr/local/apr/bin/apr-1-config

make && make install

安装完毕后,可以验证/usr/local/apu是否存在


3.neon包,下载地址:http://www.webdav.org/neon/

这边我下载的是neon-0.29.6.tar.gz,放置路径/root/dir_install/neon-0.29.6.tar.gz

tar zxvf neon-0.29.6.tar.gz进行解压,生成neon-0.29.6

cd neon-0.29.6

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

make && make install

安装完毕后,可以验证/usr/local/neon是否存在

四、apache服务器

1.安装apache,下载地址http://httpd.apache.org/

这边我下载的是httpd-2.4.1.tar.gz,放置路径/root/dir_install/httpd-2.4.1.tar.gz

tar zxvf httpd-2.4.1.tar.gz进行解压,生成httpd-2.4.1

cd httpd-2.4.1

./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config  --with-neon=/usr/local/neon/bin/neon-config --enable-dav --enable-dav-fs

make && make install

2.验证apache是否正确安装

cd /usr/local/apache2/conf

vi httpd.conf              # [Listen 9580],我这边是将80改成9580

                                   #[ServerName xxx.xxx.xxx.xxx:9580]这边xxx.xxx.xxx.xxx表示ip地址

cd /usr/local/apache2/bin

./apachect1 stop

./apachect1 start

在客户端URL:http://xxx.xxx.xxx.xxx:9580,如显示"it works!"  ,则表明apache服务器已经开始工作!

再进行下一步之前,暂时先把apache服务器关闭!/usr/local/apache2/bin/apachect1 stop

:这个地方一定要注意把防火墙关了,不然在客户端访问会出现错误!

命令:

service iptables stop

service ip6tables stop

五、subversion服务器安装

1.安装subversion,下载地址:http://subversion.apache.org/download/

我这边下载的是subversion-1.7.3.tar.bz2,放置路径/root/dir_install/subversion-1.7.3.tar.bz2

tar jxvf subversion-1.7.3.tar.bz2 进行解压,生成subversion-1.7.3

cd subversion-1.7.3

注意:我在这边confure再make的时候,报一个错误,纠结了很久以后,终于在网上找到了一位神人的帖子,成功的解决了问题!(这边一定要改svn的源码)

遇到的问题1:make subversion的时候报如下错误!(我装的是svn1.7.3版本,不知道其他版本安装时是否有该问题存在!没有具体实验过!)

subversion/mod_dav_svn/util.c: In function 'dav_svn__log_err':

subversion/mod_dav_svn/util.c:630: error: 'dav_error' has no member named 'save_errno'
subversion/mod_dav_svn/util.c:631: error: 'dav_error' has no member named 'save_errno'

make: *** [subversion/mod_dav_svn/util.lo] 错误 1

解决方法:

定位到路径/root/dir_install/subversion-1.7.3/subversion/mod_dav_svn/util.c,编辑内容如下
 -       if (errscan->save_errno != 0) {
 -           errno = errscan->save_errno;

+       if (errscan->aprerr != 0) {
+           errno = errscan->aprerr;

注意:这边”-“是删除的意思,”+“是添加的意思

然后继续

./configure --prefix=/usr/local/svn1.7.3 --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config  --with-neon=/usr/local/neon/bin/neon-config --with-ssl

make && make install


进到到/usr/local/svn1.7.3/bin使用命令./svn --version查看信息,有信息打出,则表明安装已经成功!

六、subversion和apache配置

1.先检查/usr/local/apache2/modules/是否存在mod_dav_svn.somod_authz_svn.so

如果没有,

cp /root/dir_install/subversion-1.7.3/subversion/mod_dav_svn/.libs/mod_dav_svn.so /usr/local/apache2/modules/.

cp /root/dir_install/subversion-1.7.3/subversion/mod_authz_svn/.libs/mod_authz_svn.so /usr/local/apache2/modules/.

2.编辑httpd.conf文件

vi /usr/local/apache2/conf/httpd.conf


#LoadModule dav_fs_module modules/mod_dav_fs.so

#LoadModule dav_module modules/mod_dav.so

修改为:

LoadModule dav_fs_module modules/mod_dav_fs.so

LoadModule dav_module modules/mod_dav.so

再添加

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

注意: 新增的这两行的代码顺序不要弄错掉,有可能带来不必要的错误!

再在末尾添加

<Location /svn>   #意味着可以通过像这样的URL(http://MyServer/svn)来访问Subversion版本库
DAV svn     #
告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块
SVNParentPath /var/svn_data/svnroot   #
告诉Subversion在目录/var/svn_data/svnroot下寻找版本库
AuthType Basic  #
启用基本的验证,使用用户名/密码验证
AuthName "mysvn"   # mysvn为版本库
AuthUserFile/var/svn_data/conf/svn-auth-file #svn-auth-file访问密码和用户文件,
用来验证用户的用户名及密码
AuthzSVNAccessFile /var/svn_data/conf/svn-access-file    #权限控制文件,
限定各个用户或组在版本库中目录的访问权限
Require valid
-user  #限定用户只有输入正确的用户名及密码后才能访问这个路径
</Location>

3.创建svn-auth-file文件

利用htpasswd命令创建用户密码文件/usr/local/apache2/bin/htpasswd -cm /var/svn_data/conf/svn-auth-file

4.创建svn-access-file文件

cd /var/svn_data/conf

touch svn-access-file

vi svn-access-file    添加如下内容

#组配置  组 = 用户名
[groups]        
admin 
= admin
#@user 
= test  #test用户还需要按照上面d步骤来创建它和它的密码

# 为所有库指定默认访问规则
# 所有人可以读
[
/]
* = r

# 为test版本库制定权限
#admin组拥有读写权限
#user组只有读取权限
[mysvn:
/]
admin 
= rw
#@user 
= r

5.创建mysvn版本库

cd /var/svn_data/svnroot

svnadmin create mysvn

6.修改文件权限,让apache用户能够有权限读写

查看文件httpd.conf

找出内容

User daemon
Group daemon

修改文件的所属组和所属用户名

chown -R daemon:daemon /var/svn_data

chmod -R 777 /var/svn_data

这边一定要把mysvn的版本库权限改为可写,否则会出现check in返回500的错误!

七、启动apache验证apache+svn是否安装成功

1.启动apache,

cd /usr/local/apache2/bin

./apachect1 start

2.url中输入”http://xxx.xxx.xxx.xxx:9580/svn/mysvn“,不报错,则表示已经成功

你就可以自动mysvn库到本地,添加内容,check in到版本库看是否都一切正常~


本人也仅仅是配置到这种程度,还有很多问题,还没能解决,解决了到时候再来更新!