文章目录[隐藏]
(一)安装前准备
1. Apache服务器安装包
wget http://labs.mop.com/apache-mirror/httpd//httpd-2.4.2.tar.bz2 wget http://labs.mop.com/apache-mirror/httpd//httpd-2.4.2-deps.tar.bz2
2. apr和apr-util安装包
wget http://www.fayea.com/apache-mirror/apr/apr-1.4.6.tar.bz2 wget http://www.fayea.com/apache-mirror/apr/apr-util-1.4.1.tar.bz2
二、安装Apache
1. 安装apr
tar -jxvf apr-1.4.6.tar.bz2 -C /usr/src/ cd /usr/src/apr-1.4.6 ./configure --prefix=/usr/local/apr make make install
2. 安装apr-util
tar -jxvf apr-util-1.4.1.tar.bz2 -C /usr/src cd /usr/src/apr-util-1.4.1 ./configure --with-apr=/usr/local/apr make make install
3. 安装Apache
tar -jxvf httpd-2.4.2.tar.bz2 -C /usr/src tar -jxvf httpd-2.4.2-deps-tar.bz2 -C /usr/src cd /usr/src/httpd-2.4.2 ./configure \ --prefix=/usr/local/apache2 \ --with-apr=/usr/local/apr/bin/apr-1-config \ --with-apr-util=/usr/local/apr/bin/apu-1-config \ --enable-modules-so \ --enable-dav \ --enable-maintainer-mode \ --enable-rewrite make make install
默认安装目录为/usr/local/apache2。
安装后启动:
apachectl -k start
设置为开机启动:
chkconfig httpd on
如果出现错误:
httpd: Could not reliably determine the server's fully qualified domain name, using ** for ServerName
在/etc/httpd/conf/httpd.conf中取消ServerName的注释即可。
验证Apache是否安装成功:
启动浏览器,输入http://localhost/,看是否有Apache的测试页面。
(三)安装subversion
由于用源码包安装会遇到版本和兼容性问题,比较不方便,以下用yum来安装。
1. 安装
yum install subversion mod_dav_svn
其中:
subversion为主程序包
mod_dav_svn是apache用到的功能模块
(四)创建SVN版本库
mkdir -p /opt/svn #根目录 svnadmin create /opt/svn/svn/svntest #svntest项目 #修改svn库的所有者,readable and writable by apache user. chown -R apache.apache svntest chcon -R -t httpd_sys_content_t svntest #change file SELinux security context. labelled with the 'httpd_sys_content_t' #if using SELinux
(五)创建SVN用户文件
#创建用户文件passwd,添加一个用户
# -c表示创建,-m采用MD5加密密码
htpasswd -cm passwd username
会显示:
htpasswd -cm passwd username New password: Re-type new passwd: Adding password for user username
如果还需要添加用户:
htpasswd -m passwd anotherusername
只有第一次才需要-c
删除用户:
htpasswd -D passwd username
(六)创建SVN访问权限控制文件
cd /opt/svn touch authz
编辑authz:
[group] group1=user1, user2 [svntest:/] @group=r user1=rw
(七)配置Apache以支持SVN
Apache中SVN的配置文件为:/etc/httpd/conf.d/subversion.conf
其中必须有以下两行,没有则自行添加:
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so
添加:
DAV svn SVNParentPath /opt/svn #svn的根目录 AuthType Basic #Basic认证方式 AuthName "Subversion" #认证时显示的信息 AuthUserFile /opt/svn/passwd #用户文件 AuthzSVNAccessFile /opt/svn/authz #访问权限控制文件 Require valid-user #要求真实用户,不能匿名
(八)测试
service httpd start
在浏览器中输入
URL:http://localhost/svn/svntest/
会弹出一个认证窗口,通过认证后即可访问svntest项目。
(九)验证方式
Basic和Digest都是Web应用可采用的验证机制。
Basic验证使用原文传送秘密,所以应该只通过加密的传输途径发送,如HTTPS。
Digest保证不会通过纯文本发送证书,如果使用没有加密的HTTP,还希望达到最大
安全性的时候,摘要验证便具有很高的吸引力。
在/etc/httpd/conf.d/subversion.conf中:
AuthType Digest AuthName "Subversion"
在/opt/svn下
格式:htdigest -c passwdfile realm username
htdigest -c digest "Subversion" username htdigest digest "Subversion" anotherusername
(十)问题解决
http://localhosts/svn/
显示:
Forbidden You don't have permission to access /svn/ on this server.
决绝措施:
在/opt/svn/authz中增加权限:
[/] username = r
在/etc/httpd/conf.d/subversion.conf
中修改
SVNParentPath /opt/svn改成SVNParentPath /opt/svn/
添加:
SVNListParentPath on
OK,重启httpd后再访问就有:
Collection of Repositories Author yujiankd @ csdn Reference
(十一)参考
[1] http://baike.baidu.com/view/429581.htm
[2] http://www.cnblogs.com/sunyubo/archive/2010/05/25/2282164.html
[3] http://ybhanxiao.iteye.com/blog/1280999