Subversion+Apache 配置和管理
来源:互联网 发布:中文域名的作用 编辑:程序博客网 时间:2024/06/05 07:40
Subversion+Apache 配置和管理
“apache2.2 + svn1.74 + 虚拟目录 + 多项目版本 + 多用户” 的配置过程:
1、安装apache:apache_2.2.11-win32-x86-no_ssl.msi,双击安装程序,之后点击下一步,并按要求填写域名和邮箱(这个可以随便填写),直到安装完成,建议将Apache安装成 for all Users,on Port 80,as a service。注意:如果已经有一个IIS或者其它的程序使用80端口,安装可能会失败。如果是这样,可以到程序目录下的Apache Group\Apache2\conf目录中找到文件httpd.conf,将其中的Listen 80改成一个不用的端口,比如Listen 81。然后重新运行这个安装程序,这次应该不会再有问题了。现在你可以在你的浏览器中键入http://loccalhost,如果呈现了一个已经配置好的网站,那么你的Apache就安装成功了。
然后安装svn和TortoiseSVN-1.6.0.15855-win32-svn-1.6.0.msi。
2、Apache配置:原理如下,利用apache服务访问svn服务器,在apache服务启动时,加载svn启动库,客户就可以通过webdav的方式访问了。svn启动时需要必须加载的库是mod_dav_svn.so,如果需要对访问的repository进行用户和目录的权限设置,则需要mod_authz_svn.so库。这两个库都在%subversion%/bin目录下,先把这两个文件拷入到%apache%/modules目录下。从Subversion的安装目录拷贝文件libdb43.dll(或者libdb44.dll,根据自己的版本决定)到Apache的modules目录。
物理文件准备完毕,修改%apache%/conf/下面的httpd.conf文件。可以看到
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so
也就是说,apache默认启动不是以webdav方式,去掉#,再下面添加如下两行
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
现在apache启动时会加载上面三个so。
在文件末尾加上如下内容,下面是比较简单的配置:
<Location /repos> # "/repos"是在url上指定的访问路径,客户访问需要键入这个路径。
DAV svn # 声明svn
SVNPath E:/svn # "E:/svn"是服务器上svn的repository的目录。
# SVNParentPath E:/svn # 对于一个目录下存在多个工程的情况,可以声明这个变量。
# 在apache中配置svn有两种,可以混合使用,一种是apache自身的认证机制,对进入/repos目录的用户进行统一认证,
# 一种是应用svn的认证,可以深入到目录级别进行权限控制,和svn独立启动时设置权限一样。
### apache auth begin
AuthType Basic
AuthName "Subversion repository" # 认证的名字
AuthUserFile D:/svn_auth_file # D:/svn_auth_file里面存放的是使用htpasswd -m D:/svn_auth_file user
# 生成的用户名与密码的加密文件。注意,此处的路径不能有空格。
Require valid-user # 声明,必须是有效的用户才可以访问
### apache auth end
### svn auth begin
AuthzSVNAccessFile D:/svn_authz # D:/svn_authz文件是根据%respository%/conf/authz的规则编写,其实就
# 是svn对用户权限读取的文件格式,mod_authz_svn.so要求的格式。
# SVNIndexXSLT "d:/svnindex.xsl" # d:/svnindex.xsl是用户可以自定义的显示模版,设计好模板,html上的显会更漂亮。
# authentication if necessary.
Satisfy Any # 字面翻译是:都要满足,是声明用户要满足条件
Require valid-user # 声明,必须是有效的用户才可以访问
### svn auth end
</Location>
如果是单资源库:
<Location /svn>DAV svn
SVNPath E:\Repository
AuthType Basic
AuthName "Subversion Reporsitory"
AuthUserFile E:\Repository\conf\passwd
AuthzSVNAccessFile E:\Repository\conf\authz
Require valid-user
</Location>
如果是多资源库:
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath E:\Resources\SVN\Repositories
AuthType Basic
AuthName "Subversion Reporsitory"
AuthUserFile E:\Resources\SVN\conf\passwd
AuthzSVNAccessFile E:\Resources\SVN\conf\authz
Require valid-user
</Location>
其中:<Location /svn>是指SVN服务的实例路径,需要用http://XXX.XXX.XXX.XX/svn/的方式才可以访问;E:\Resources\SVN\Repositories是资源库主目录;E:\Resources\SVN\conf是存放用户文件和权限文件的目录;E:\Resources\SVN\conf\passwd就是存放用户信息的文件,它是一个没有后缀的文件,用Apache的htpasswd.exe来维护,负责将用户的密码用MD5加密成暗文;E:\Resources\SVN\conf\authz就是存放访问权限的文件,它也是一个没有后缀的文本文件可以用文本工具直接编辑;AuthType Basic是认证类型,此处采用基本类型,即采用用户名+密码的方式;AuthName "Subversion Reporsitory"是指认证时代表示,起到提示作用;Require valid-user表示SVN必须提供用户和密码才可以访问,不能匿名登录。重启Apache,查看Apache Service Monitor状态栏是否包含“SVN/1.6.0 DAV/2”字样。在浏览器中输入http://******/svn/(其中******为你的主机域名地址或者IP地址),验证配置。
要创建passwd文件,可以打开命令行(DOS窗口),将当前目录切换到apache2目录(通常为c:\program files\apache group\apache2),然后打入以下命令以创建文件:bin\htpasswd -c passwd <username>,此命令执行bin目录下的htpasswd.exe来创建一个密码文件,重启Apache服务。
上面的配置仅仅是一个简单的示例。你还可以对Apache进行许许多多的配置。
1 如果你想让所有用户对版本库都有读的权限而只有特定的用户才有写的权限,你可以将这行
- Require valid-user
- <LimitExcept GET PROPFIND OPTIONS REPORT>
- Require valid-user
- </LimitExcept>
- #AuthzSVNAccessFile D:\svnaccessfile
- [groups]
- admin = john, kate
- devteam1 = john, rachel, sally
- devteam2 = kate, peter, mark
- docs = bob, jane, mike
- training = zak
- # 为所有库指定默认访问规则
- # 所有人可以读,管理员可以写,危险分子没有任何权限
- [/]
- * = r
- @admin = rw
- dangerman =
- # 允许开发人员可以完全访问他们的项目版本库
- [proj1:/]
- @devteam1 = rw
- [proj2:/]
- @devteam2 = rw
- [bigproj:/]
- @devteam1 = rw
- @devteam2 = rw
- trevor = rw
- # 文档编写人员对所有的docs目录有写权限
- [/trunk/doc]
- @docs = rw
- # 培训人员可以完全访问培训版本库
- [TrainingRepos:/]
- @training = rw
apache启动不了的解决办法:
一、运行CMD进入命令行模式,定位在apache的安装目录下的BIN目录。
二、输入此命令:httpd.exe -k install -n apache2 。这条命令的意思就是把apache服务做为系统服务以apache2做为服务名进行安装。
三、安装完成后,运行: net start apache2。即可成功
Winsock的异常将会导致Apache2.2.8服务无法启动(具体为httpd.exe程序无法启动),其错误日志error.log文件将会有如下提示:(OS10022)提供了一个无效的参数。 : Child500: setup_inherited_listeners(), WSASocket failed to open theinherited socket.
但系统日志不一定会出现该setup_inherited_listeners错误信息,反而可能会出现“httpd.exe:Could not reliably determine the server's fully qualified domainname, using xxx.xxx.xxx.xxx forServerName.”的错误信息,从而误导了排错方向。
如果系统能记录setup_inherited_listeners错误将会出现如下日志描述:
The Apache servicenamed reported the following error:
>>> (OS10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 : make_sock: could not bind to address0.0.0.0:80.
解决方法是修复winsock,重置为初始状态即可。如果此方法无效,还要配合在网上邻居->本地连接->属性->internet协议(TCP/IP)->属性->高级->wins标签->去掉启用LMhosts查询前的勾。
3、Apache的一般使用
安装好Apache后,我们可以在Apache的安装目录下找到htdocs文件夹,此文件夹就是默认网站的路径,可以在此文件夹里面保存网页文件,修改查看。
或者也可以新建虚拟目录:
使用Notepad++(或者记事本)打开D:/Apache/conf/httpd.conf文件,在最后添加一段代码Listen 8088
<VirtualHost *:8088>
DocumentRoot "D:/jerry916/"
</VirtualHost>
我们使用了8088端口,这个端口大家可以随便指定,但不要和其它程序重复,不能使用80端口,因为IIS使用了80端口。保存文件。 重启Apache。
- Subversion+Apache 配置和管理
- 软件版本管理 Apache和Subversion集成安装与配置
- SVN版本管理平台(Subversion+Apache+Jsvnadmin)安装配置和使用
- Apache和Subversion集成安装与配置
- Apache和Subversion集成安装与配置
- Apache和Subversion集成安装与配置
- Apache和Subversion集成安装与配置
- 安装配置Apache和Subversion常见错误
- Apache和Subversion集成安装与配置
- Apache和Subversion集成安装与配置
- Linux下配置Apache,Subversion和Trac
- Snow Leopard配置Apache和Subversion
- apache和subversion for windows配置详解
- Apache和Subversion集成安装与配置
- Apache和Subversion集成安装与配置
- Apache和Subversion集成安装与配置
- Apache和Subversion集成安装与配置
- 配置Subversion Apache tomcat
- 深入理解Javascript闭包(closure)
- 黑马程序员_学习日记82_811图书商城项目纪要
- 三大电商混战内幕何在?
- poj1797 - Heavy Transportation
- TQ2440从nor烧写nand启动uboot和kennel
- Subversion+Apache 配置和管理
- FCKeditor 编辑器 2.6.3
- Heavy Cargo 最短路变种
- Oracle重做日志文件的基本概念
- 网络日历开发库
- 数据结构面试之四——队列的常见操作
- John's trip 欧拉回路输出路径
- Tomcat 7.0 关于mysql连接池的配置
- 进程和线程的区别