debian建立及配置Apache2+svn和403Forbidden的解决方法

建立及配置参考以下文章,403forbidden问题见文章末尾

Debian Linux Apache2 + SVN 配置

作者: reistlin

来源: http://www.reistlin.com/blog/195
更新时间: 2009.12
版权声明: 原创文章.转载请保留作者信息和原文完整.谢绝任何方式的摘要

debian.gif

一,环境:

Debian Liunx(5.x / 6.x) + apache2(2.2.16)+ Subversion(1.6.12)

二,配置:

1,apt-get 安装 apache2, openssl(https) 和 svn

reistlin:~# apt-get install apache2 apache2-mpm-worker openssl subversion libapache2-svn

2,新建 svn 目录(/home/svn),配置目录所有者(www-data)以及权限

reistlin:~# mkdir /home/svn
reistlin:~# chown www-data:www-data -R /home/svn/
reistlin:~# chmod 770 -R /home/svn/

3,创建 svn 用户密码配置文件:/etc/apache2/dav_svn.passwd

reistlin:~# /usr/bin/htpasswd -c /etc/apache2/dav_svn.passwd admin
New password:
Re-type new password:
Adding password for user admin

密码文件默认加密方法:CRYPT encryption,密码文件格式:用户名:密码
基于安全考虑,建议加密方法使用 SHA encryption:htpasswd -s 用户名

reistlin:~# cat /etc/apache2/dav_svn.passwd
 
admin:{SHA}0DPiKuNIrrVmD8IUCuw1hQxNqZc=
reistlin:{SHA}QL0AFWMIX8NRZTKeof9cXsvbvu8=
test1:{SHA}qUqP5cyxm6YcTAhz05Hph5gvu9M=
test2:{SHA}Y2fEjdGT1W6nsLqtJbGUVeUp9e4=

4,创建 svn 目录权限配置文件:/etc/apache2/dav_svn.authz

reistlin:~# cat /etc/apache2/dav_svn.authz
 
[groups]
admin=admin,reistlin
guest=test1,test2
 
[reistlin:/]    # 版本库 reistlin 权限配置
*=              # 默认禁止所有用户访问
@admin=rw       # admin 组有 rw 权限
test1=r         # 用户 test1 有 r 权限

5,配置 /etc/apache2/mods-available/dav_svn.conf

reistlin:~# vim /etc/apache2/mods-available/dav_svn.conf

创建 svn location,指定 svn 目录,认证方式,认证信息;
指定 dav_svn.passwd 用户密码配置文件路径;
指定 dav_svn.authz 目录权限配置文件路径。

<Location /svn>
  DAV svn
  SVNParentPath /home/svn
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
  AuthzSVNAccessFile /etc/apache2/dav_svn.authz
  Require valid-user
</Location>

6,创建 svn 版本库(reistlin)

reistlin:~# su - www-data
reistlin:~$ svnadmin create /home/svn/reistlin

7,配置完成,重新启动 apache2 服务

reistlin:~$ su - root
reistlin:~# /etc/init.d/apache2 restart

8,启动浏览器,访问 http://localhost/svn/reistlin

svn_http.gif

三,管理:

1,新建用户(htpasswd SHA 加密方法,参数:-s)

reistlin:~$ sudo /usr/bin/htpasswd -s /etc/apache2/dav_svn.passwd 用户名

2,删除用户(vi/vim 编辑)

reistlin:~$ sudo vim /etc/apache2/dav_svn.passwd

查找指定用户名:/用户名
删除用户指定行:dd
保存退出::wq

3,Subversion 客户端

[TortoiseSVN](开源软件:支持英文/简体中文/繁体中文)

403Forbidden的主要原因

403的出现是由于权限不正确造成的,配置只需按照以上文章操作即可,

关于 /etc/apache2/dav_svn.authz 的配置

以原文中

[groups]
admin=admin,reistlin
guest=test1,test2
 
[reistlin:/]    # 版本库 reistlin 权限配置
*=              # 默认禁止所有用户访问
@admin=rw       # admin 组有 rw 权限
test1=r         # 用户 test1 有 r 权限
为例,dav_svn.passwd 一定要有 admin,reistlin,test1,test2几个用户,以及下面的@admin组一定要在groups中存在,我的就是由于authz 写的并不严谨,上下并不对应造成的403Forbidden,重新写了authz文件即可

0 条评论

What is 14 + 6 ?
Please leave these two fields as-is:
不答对这道小题,是不给通过的哦

昵称

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

沙发空缺中,还不快抢~