/ 中存储网

Windows系统配置Apache+SVN服务器服务环境详细步骤

2013-09-21 11:21:01 来源:IT技术网

弄了一整天的windows2003下的SVN服务器,终于搞定了,遇到的问题太多了,记录一下,希望对大家有帮助,以下内容部分来自互联网,自己整理的!

1.下载apache HTTP server 和 subversion 服务器软件(注意版本的问题,官网上面写着适合的版本)

2.安装 apache 服务器 和 subversion 服务器 (可以选择默认安装)

我用的是 httpd-2.2.17-win32-x86-openssl-0.9.8o

Setup-Subversion-1.6.6.msi

3.SVN配置:

将 SVN 的bin目录地址(C:Program FilesSubversionbin)添加到系统变量path中

创建资源库(两种):

单资源库:如果只打算建立一个资源库,打开命令提示符,输入“svnadmin create E:svndatam00n”

多资源库:如果要建立多个资源库,重复单资源库方法。

Apache配置:

将Apache安装目录的bin目录路径添加到系统环境变量path中

将 SVN 根目录的bin目录下的mod_dav_svn.so和mod_authz_svn.so两个文件拷贝到Apache根目录下的modules目录下;

打开Apache配置文件httpd.conf,找到

#LoadModule dav_fs_module modules/mod_dav_fs.so

#LoadModule dav_module modules/mod_dav.so

将前面的#去掉,并添加两行:

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

在文件最后添加:

如果是单资源库:

<Location /svn>

DAV svn

SVNPath E:svndatam00n

AuthType Basic

AuthName "m00n's SVN Server"

AuthUserFile E:svndatapasswd

AuthzSVNAccessFile E:svndataauthz

Require valid-user

</Location>

如果是多资源库:

<Location /svn/>

DAV svn

SVNListParentPath on

SVNParentPath E:svndatam00n

AuthType Basic

AuthName "m00n's SVN Server"

AuthUserFile E:svndatapasswd

AuthzSVNAccessFile E:svndataauthz

Require valid-user

</Location>

其中:<Location /svn>是指SVN服务的实例路径,需要用http://XXX.XXX.XXX.XX/svn/的方式才可以访问;E:ResourcesSVNRepositories是资源库主目录;E:ResourcesSVNconf是存放用户文件和权限文件的目录;E:ResourcesSVNconfpasswd就是存放用户信息的文件,它是一个没有后缀的文件,用Apache的htpasswd.exe来维护,负责将用户的密码用MD5加密成暗文;E:ResourcesSVNconfauthz就是存放访问权限的文件,它也是一个没有后缀的文本文件可以用文本工具直接编辑;AuthType Basic是认证类型,此处采用基本类型,即采用用户名+密码的方式;AuthName "Subversion Reporsitory"是指认证时代表示,起到提示作用;Require valid-user表示SVN必须提供用户和密码才可以访问,不能匿名登录

注意:<Location /svn/>这块大部分是<Location /svn>后面没有那个斜杠,但是我们要想把库列表显示出来,后面必须添加斜杠,否刚会报错。而且也只适合于多库的,单库的我们还是应该用<Location /svn>。强调location后面不要为空,否则会导致不可用。

重启Apache,查看Apache Service Monitor状态栏是否包含“SVN/1.6.0  DAV/2”字样。在浏览器中输入http://******/svn/(其中******为你的主机域名地址或者IP地址),验证配置。

4.管理

创建用户:打开命令提示符,定位到E:svndata输入“htpasswd -c passwd m00n”回车,提示输入密码,输入两次密码,用户就添加成功了,如果在目录下面已经存在passwd文件,就输入"htpasswd -m passwd m00n".

权限管理:

可以复制 e:svndatam00nconf 下面的authz文件到 E:svndata ,在文件里面维护:

 [groups]

everyone = m00n

admin = m00n

[/]

@everyone = r

@admin = rw

其中[groups]代表组定义:“组名 = 用户1,用户2...”;[m00n:/]代表m00n资源?a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="ce2c6d628eabb8abbcb7a1a0ab">[email protected] = r代表everyone 这个组的所有用户有读权限。权限有四种:r,w,rw和空,可以根据实际情况自行配置.

遇到的问题:

1.apache 启动失败

原因一:80端口占用,例如已经开启了IIS

原因二:软件冲突,装了某些软件会使apache无法启动

原因三:httpd.conf配置错误 

如果apache的配置文件httpd.conf搞错了,在windows里启动它,会提示the requested operation has failed ,这是比较郁闷的事,因为查错要看个半天。 

其实可以用命令行模式启动apache,并带上参数,apache会提示你哪句有误,然后就可以针对性的解决,命令如下: httpd.exe -w -n "Apache2.2" -k start 

2.Internal Server Error

查看了日志,发现提示:系统找不到指定的路径。检查发现文件路径写错。

3.配置了资源库里面生成的svnserver.conf

在使用apache的时候,svnserver.conf是不起作用的。

4.Forbidden

You don't have permission to access /svn/ on this server.

首先把Require valid-user改成Satisfy Any看看可不可以访问,要是可能的话,则是密码设置有问题。 否则,配置文件有问题。