SVN+Apache安装指南
1 安装Apache
(1)下载Apache
访问地址:http://httpd.apache.org/download.cgi下载Apache.在这里我下载的版本是 2.2.10 .
(2) 安装
下载完成后运行apache_ 2.2.10 -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服务器是 2.2.10 版本。我的安装地址是的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/ 2.2.10 (Win32) SVN/1.5.3 DAV/2”(包含SVN字样)则说明安装成功。
3 配置
Subversion的用户需要设置如下环境变量:
SVN_EDITOR="C:/Windows/notepad.exe"
当使用subversion进行导入、提交等操作时,subversion会调用该程序编辑提交说明。
作为演示,我们建立一个版本库。首先打开命令行提示符,进入d:/dev/svn /repos,输入以下命令:
svnadmin create project1
然后尝试向project1版本库中添加代码。假设我们在 D:/dev/ 下面test为工程目录,那么我们输入以下命令:
svn import test http://localhost/repos/ project1
其中 test 为目录名。svn会调用文本编辑器来编辑说明文字,保存并关闭之后,svn会显示:
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 |