SVN+Apache安装指南
1安装Apache
(1)下载Apache
访问地址:http://httpd.apache.org/download.cgi下载Apache.在这里我下载的版本是<chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on"><span lang="EN-US">2.2.10</span></chsdate>.
(2) 安装
下载完成后运行apache_<chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">2.2.10</chsdate>-win32-x86-openssl-0.9.8i.msi
,根据提示进行操作。遇到系统要求输入SERVER的URL时,如果你的服务器没有DNS名称,请直接输入IP地址(此文件也可在安装后进行修改,该文件位于Apache Software Foundation/Apache2.2/conf/httpd.conf文件)。
注意:如果你已经有了IIS或其他监听80段口的程序,安装会失败,如果发生这种情况,直接到程序的安装目录Apache Software
Foundation/Apache2.2/conf,打开httpd.conf。编辑文件的Listen 80为其他可用的端口,例如Listen 81,然后重新启动-这样就不会那个问题了,或者将其它应用的端口进行改之。我在安装的过程中遇到了80端口被占用的问题,找到了下面这个解决方法。
安装apache时80端口被占用的解决方案(Windows)
地址:http://blog.tanggaowei.com/2007/06/80apacheapacheservcieapache.html
如果80端口被占用,安装Apache的过程中,可能不能成功安装Apache的Servcie。如果不能正确安装Apache
Service,那么执行Start或Restart等命令时,会报如“找不到Apache2的Service”的错误,然后执行失败。这样的话,修改了httpd.conf文件,将端口改为其它值(如8088)也无法正确启动Apache服务。
在这样的情况下,可以在修改httpd.conf文件后,再执行Apache安装文件,然后选择修复功能。如果httpd.conf修改正确,修改完成后,Apache Service就会被正确安装,Apahce
Http Server就能正常启动了。
总结:
一、安装Apahce;
二、修改httpd.conf,将端口改为其它未被占用的端口号;
三、重新运行Apache安装文件,选择修复功能执行。
当然,这里还有一种有效的办法,不仅可以不用更改默认的端口号,还能找到抢占端口的“凶手”是谁。链接:http://www.x2blog.cn/Maxwin/?tid=18000
一、开始->运行->cmd,输入netstat -o -an;
二、打开windows任务管理器, 查看->选择列 勾选pid;
三、找到那个进程占用了80端口的pid,解决之。
(3)检查
安装完成后浏览 http://localhost/若成功,显示IT WORKS! 说明安装成功!
2安装Subversion
(1)下载 Subversion
地址:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91在本实例中,选择下载Setup-Subversion-1.5.3.msi
版本.
(2)安装
一直点击确定安装。在apache选择选项中选中2.2.X,因为我的apache服务器是<chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on"><span lang="EN-US">2.2.10</span></chsdate>版本。我的安装地址是的d:dev/subversion/
(3)手工操作
步骤1 从subversion/bin 中将mod_authz_svn.so mod_dav_svn.so复制到Apache Software
Foundation/Apache2.2/modules下,再将subversion/bin目录下的所有dll文件全部复制到Apache Software Foundation/Apache2.2/bin文件夹下。
步骤2 找到Apache Software Foundation/Apache2.2/httpd.conf文件,然后去掉如下几行的注释(删除 '#'标记):
#LoadModule
dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so
将下面两行添加到LoadModule部分的最后。
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module
modules/mod_authz_svn.so
之后在httpd.conf的末尾添加如下几行:
<Location /repos>
DAV svn
SVNParentPath d:dev/svn/repos
</Location>
其中,repos 为从Web上访问版本库时所使用的路径,而SVNParentPath后面的目录即为版本库目录的位置。该指令告诉Apache,所有以 /repos 开头的请求都交给subversion处理。
打开“控制面板”->“管理工具”->“服务”,重启apache,查看Apache2服务的描述,如果描述变成类似于“Apache/<chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">2.2.10</chsdate> (Win32)
SVN/1.5.3 DAV/2”(包含SVN字样)则说明安装成功。
<!--[if gte vml 1]><v:shapetype id="_x0000_t75"
coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"
filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:394.5pt;
height:246.75pt'>
<v:imagedata src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image001.png"
o:title=""/>
</v:shape><![endif]-->http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image003.png
o:title=""/>
</v:shape><![endif]-->
Committed revision 1.
然后可以通过以下命令察看保存到服务器上的文件:
svn list http://localhost/repos/ project1,
也可以通过浏览器查看。地址为http://localhost/repos/ project1。到此配置apache+subversion配置安装完成。如果想进行更加精细的权限控制,请阅读下面章节。
进一步设置:设置权限密码
设置密码文件
以cmd命令窗口进入路径Apache Group/Apache2/ bin目录下,然后输入:
> htpasswd -c d:/dev/svn /repos/project1/conf/<filename>
<username>
本例中filename名称使用passwordfile,username名称使用admin(注意filename无需后缀名),这样便可在d:/dev/svn /repos/project1/conf目录下创建一个用户名为admin的passwordfile文件,此文件将在后面配置权限所用。
此后添加用户,可使用如下命令:
>htpasswd
filename <username>
删除用户,使用如下命令:
>htpasswd
-D filename <username>
若对密码不想加密可使用-cp参数,windows平台下默认是MD5加密
(3)设置权限文件
用文本编辑器在d:/dev/svn
/repos/project1/conf路径下生成名为svnaccessfile的文件,此名称将在/Apache2.2/conf/httpd.conf配置文件中所用,此处不使用扩展名。编辑一下内容:
[groups]
committers = admin
developers = Allen
[/]
* = r
@developers = r
@committers = rw
[projects:/]
@ developers = rw
基本含义是根目录下任何人有读权限,committers组有读写权限;admin对projects读写权限,而developers组只有读的权限。
备注:如果有中文路径,那要把文件存成UTF8格式,不建议使用中文路径,这在编程当中是严格禁止的.
(4)配置服务
编辑 /Apache2/conf/httpd.conf文件,添加下面代码。
<Location /repos>
DAV svn
SVNParentPath d:dev/svn/repos
AuthType Basic
AuthName "Subversion
repositories"
AuthUserFile " d:dev/svn/repos/conf/passwordflie"
AuthzSVNAccessFile " d:dev/svn/repos/conf/svnaccessfile"
Require valid-user
SVNAutoversioning on
ModMimeUsePathInfo on
</Location>
(5)配置内容说明
设置
|
解释
|
<Location>
|
意思是Subversion版本库的URL是http://ipaddress/svn/
|
DAV svn
|
告诉Apache是哪个模块响应那个URL的请求-此刻是Subversion模块。
|
SVNPath
|
告诉Subversion需要查看的版本库位于D:/var/svnhome/projects之下
|
AuthType Basic
|
激活基本认证,就是用户名/密码
|
AuthName
|
用来说明弹出要求输入认证信息的对话框信息,可以使用中文.
|
AuthUserFile
|
指定使用认证密码的文件
|
AuthzSVNAccessFile
|
位置Subversion版本库的访问控制权限的路径文件
|
Require valid-user
|
指定只有输入了正确的用户/密码的用户可以访问URL
|
|