debian 安装svn apache 小记. AuthzSVNAccessFile 不生效问题.
docker 使用docker镜像搭建svn+Apache环境
https://my.oschina.net/u/2006667/blog/637882
1,安装 apache ,svnapt-get install apache2 subversion libapache2-svn
不安装apache 是不能通过http方式来访问的.
subversion服务器是不需要apache的,但是可以使用apache,视具体情况来选择。
1、如果只要通过file://或svn://来访问,则不需要apache,只安装svn即可,使用svnserve来作为服务。
2、如果你要建立一个可以通过http://或https://来访问的版本库服务器,则你需要使用apache。
2,版本信息.
root# svn --version
svn, version 1.6.17 (r1128011)
compiled Dec 20 2014, 19:48:25
root#apachectl -v
Server version: Apache/2.2.22 (Debian)
Server built: Dec 23 2014 22:48:32
3,创建版本库并将所有权转让给apache2
svnadmin create /disk1/d1/svn/project
chown www-data:www-data -R /disk1/d1/svn/project
4,修改 /etc/apache2/mods-enabled/dav_svn.conf
实际上是软件连接:
root@iZ233or8cn2Z:/etc/apache2/mods-enabled# ls -l
lrwxrwxrwx 1 root root 30 Jul 2 17:05 dav_svn.conf -> ../mods-available/dav_svn.conf
对应了 /mods-available/dav_svn.conf 这个文件.
打开这个文件可见内容.网上很多版本的dav_svn.conf已经不是最新的版本了.
root@iZ233or8cn2Z:/etc/apache2/mods-enabled# cat dav_svn.conf
# dav_svn.conf - Example Subversion/Apache configuration
#
# For details and further options see the Apache user manual and
# the Subversion book.
#
# NOTE: for a setup with multiple vhosts, you will want to do this
# configuration in /etc/apache2/sites-available/*, not here. # <Location URL> ... </Location>
# URL controls how the repository appears to the outside world.
# In this example clients access the repository as http://hostname/svn/
# Note, a literal /svn should NOT exist in your document root.
<Location /svn> # Uncomment this to enable the repository
DAV svn # Set this to the path to your repository
#SVNParentPath /disk1/d1/svn/project
# Alternatively, use SVNParentPath if you have multiple repositories under
# under a single directory (/var/lib/svn/repo1, /var/lib/svn/repo2, ...).
# You need either SVNPath and SVNParentPath, but not both.
SVNParentPath /disk1/d1/svn # Access control is done at 3 levels: (1) Apache authentication, via
# any of several methods. A "Basic Auth" section is commented out
# below. (2) Apache <Limit> and <LimitExcept>, also commented out
# below. (3) mod_authz_svn is a svn-specific authorization module
# which offers fine-grained read/write access control for paths
# within a repository. (The first two layers are coarse-grained; you
# can only enable/disable access to an entire repository.) Note that
# mod_authz_svn is noticeably slower than the other two layers, so if
# you don't need the fine-grained control, don't configure it. # Basic Authentication is repository-wide. It is not secure unless
# you are using https. See the 'htpasswd' command to create and
# manage the password file - and the documentation for the
# 'auth_basic' and 'authn_file' modules, which you will need for this
# (enable them with 'a2enmod').
AuthType Basic
AuthName "Subversion Repository"
#用户密码文件.
AuthUserFile /etc/apache2/dav_svn.passwd # To enable authorization via mod_authz_svn (enable that module separately):
<IfModule mod_authz_svn.c>
#用户权限 认证文件
AuthzSVNAccessFile /etc/apache2/dav_svn.authz
</IfModule> # The following three lines allow anonymous read, but make
# committers authenticate themselves. It requires the 'authz_user'
# module (enable it with 'a2enmod').
#<LimitExcept GET PROPFIND OPTIONS REPORT>
#需要用户认证
Require valid-user
#</LimitExcept> </Location>
5,修改svn权限设置,权限主体可为个人或小组,以目录为节点设置读/写位,下面是样例:
/etc/apache2/dav_svn.authz
目录结构
svn---
+++++++project
++++++++++++++Client
++++++++++++++++++++test1
++++++++++++++Document
[groups]
admin = test1,test2
group_a =test3
[svn:/]
*=
[project:/]
*=
@admin =rw
[project:/Client]
*=
@group_a=rw
@admin=rw
[project:/Client/test1]
*=
test1=rw
[project:/Document]
*=
test2=rw
*=空 是没有权限 ,
r 读取
w写入 权限
6. 创建账户
#/etc/apache2
//首次加 -c
htpasswd -c dav_svn.passwd test
//
htpasswd dav_svn.test2
重置密码:
root@iZ233or8cn2Z:/etc/apache2# htpasswd --help
Usage:
htpasswd [-cmdpsD] passwordfile username
htpasswd -b[cmdpsD] passwordfile username password htpasswd -n[mdps] username
htpasswd -nb[mdps] username password
-c Create a new file.
-n Don't update file; display results on stdout.
-m Force MD5 encryption of the password (default). # -m 重置密码
-d Force CRYPT encryption of the password.
-p Do not encrypt the password (plaintext).
-s Force SHA encryption of the password.
-b Use the password from the command line rather than prompting for it.
-D Delete the specified user.
On other systems than Windows, NetWare and TPF the '-p' flag will probably not work.
The SHA algorithm does not use a salt and is less secure than the MD5 algorithm. #
htpasswd -m dav_svn.passwd liutxxx
7,重启apache生效
root@iZ233or8cn2Z:/etc/apache2# service apache2 restart
Restarting web server: apache2apache2: Could not reliably determine the server's fully qualified domain name, using 10.175.197.65 for ServerName
... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 10.175.197.65 for ServerName
.
8,访问.
去网页打开 http://127.0.0.1/svn/project/Document/
发现所有用户都能访问,权限不生效.
一度怀疑:
1,权限文件路径是否正确
2,权限文件 dav_svn.authz 是否chmod 777 dav_svn.authz
3,重点...
老版本是报 "apache报非法指令'AuthzSVNAccessFile' " 但新版本没有报错,却原因一样.
重启apache报非法指令'AuthzSVNAccessFile',那么很可能是'authz_svn_module'没加载或apache自己加载顺序的问题,可以在 mods-available/dav.load手动加载该模块解决问题。(添加下文中的最后一行即可)
参考网址:http://www.cnblogs.com/liuyangnuts/archive/2013/03/19/2965256.html
# file: /etc/apache2/mods-available/dav.load LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so
新版本 不会报AuthzSVNAccessFile 只会没有权限,这点恶心了我一天.
重启apache : service apache2 restart
再去网页看看,能正确验证权限.
至此 svn 的搭建完成了.
debian 安装svn apache 小记. AuthzSVNAccessFile 不生效问题.的更多相关文章
- centos7基于SVN+Apache+IF.svnadmin实现SVN的web管理
一.介绍 本文介绍的是CentOS7上搭建基于Apache.SVN Server.iF.svnadmin实现web后台可视化管理SVN. iF.SVNAdmin应用程序是Subversion授权文件基 ...
- CentOS7编译安装SVN(subversion1.9.7)
参考连接0:http://www.programering.com/a/MDMzYDMwATg.html参考连接1:http://www.zsythink.net/archives/13180.系统信 ...
- Linux-yum在线安装svn步骤
yum -y install subversion httpd mod_dav_svn 使用yum命令安装svn(subversion),httpd(apache服务器)和svn在apache上的插件 ...
- 1.svn+apache整合
1:安装svn客户端, 并且在客户端下,能建立仓库,在自己的硬盘上,建一个库利用 file:///D:/xx/yy来管理自己的仓库. 2:把svn与apache整合. 2.1为什么与apache一起整 ...
- 170428、centos6.5安装Subversion + Apache +Jsvnadmin
服务器地址:192.168.0.112 root用户操作 建议 安装前 更 新操作系统 # yum update 更新完成后重启 # reboot 安装 装 apache # yum install ...
- Centos5.8 安装SVN并配置HTTP访问
安装 svn sudo yum install subversion 测试 svn --version 安装 httpd 的 svn 模块 sudo yum install mod_dav_svn 前 ...
- linux安装SVN
1. 下载软件包 http://archive.apache.org/dist/subversion/ http://archive.apache.org/dist/subversion/subver ...
- linux 安装SVN
1.环境centos6.4 2.安装svnyum -y install subversion 3.配置 建立版本库目录mkdir /www/svndata svnserve -d -r /www/sv ...
- ubuntu安装svn manager
环境:系统ubuntu14.04 0. 更新软件库 sudo apt-get update sudo apt-get upgrade -y 1. 安装apache,svn,svn的apache模块 s ...
随机推荐
- FireFox每次访问页面时检查最新版本
FireFox每次访问页面时检查最新版本 浏览器都有自己的缓存机制,作为开发人员,每次js的修改都要清空缓存,显然很不方便.而firefox并没有提供ie那样的设置. 下面的方法就可以非常方便的设置f ...
- [Fluent NHibernate]第一个程序
目录 写在前面 Fluent Nhibernate简介 基本配置 总结 写在前面 在耗时两月,NHibernate系列出炉这篇文章中,很多园友说了Fluent Nhibernate的东东,也激起我的兴 ...
- 10款最好的 Bootstrap 3.0 免费主题和模板
Twitter Bootstrap 框架已经广为人知,用于加快网站,应用程序或主题的界面开发,并被公认为是迄今对于Web开发的最有实质性帮助的工具之一.在此之前的,各种各样的界面库伴随着高昂的维护成本 ...
- PHP如何通过Http Post请求发送Json对象数据?
因项目的需要,PHP调用第三方 Java/.Net 写好的 Restful Api,其中有些接口,需要 在发送 POST 请求时,传入对象. Http中传输对象,最好的表现形式莫过于JSON字符串了, ...
- PHP realpath() 函数
定义和用法 realpath() 函数返回绝对路径. 该函数删除所有符号连接(比如 '/./', '/../' 以及多余的 '/'),返回绝对路径名. 若失败,则返回 false.比如说文件不存在的话 ...
- MySQL SQL Mode及相关问题
MySQL可以运行于不同的SQLMode下,Mode定义了MySQL应支持的SQL语法.数据校验等. 一.Mode会影响到日期类型.字符串类型等的插入操作.其中多种模式影响了对某些特殊字符如何理解的问 ...
- C#高级编程笔记 2016年10月8日运算符和类型强制转换
1.checked和unchecked 运算符 C#提供了checked 和uncheckde 运算符.如果把一个代码块标记为checked, CLR就会执行溢出检查,如果发生溢出,就抛出overfl ...
- Java 网络编程之 Socket
========================UDP============================= UDP---用户数据报协议,是一个简单的面向数据报的运输层协议. UDP不提供可靠性, ...
- JS date常用代码积累
Date.prototype.Format = function(fmt) { var o = { "M+" : this.getMonth()+1, //月份 "d+& ...
- 【krpano】汉化Web VR设置界面
欢迎加入qq群551278936讨论krpano解密技术以及获取最新软件 krpano 1.19支持了Web VR功能,允许以VR的方式查看全景图,配合上VR设备可以实现VR效果. 在VR方式查看时, ...