您的位置:首页 > 运维架构 > Apache

Apache和Subversion集成安装与配置

2008-11-30 13:40 344 查看
Apache和Subversion集成安装与配置
要准备的东西如下:

1: http://httpd.apache.org/下载 apache_2.0.63-win32-x86-openssl-0.9.7m.msiapache_2.0.63-win32-x86-no_ssl.msi
2,http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91    下载 Setup-Subversion-1.5.3.msi

3: http://tortoisesvn.net/ 下载 TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi

    http://tortoisesvn.net/translator_credits 下载 LanguagePack_1.5.5.14361-win32-zh_CN.msi

1. 安装Apache
确保你下载的版本大于2.0.54。2.0.54版本的Apache将不能与Subversion 1.3.xx配合工作。而且,小于2.0.54的Apache也因为在windows上的编译存在一个bug而导致不能与subversion配合使用。
建议你将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就安装成功了。

警告

如果你将Apache安装成一个服务,它将以本地system帐户来运行。为Apache创建一个单独的用户来运行它将会更安全一些。
请确保运行Apache的用户有版本库的完全访问权限(右键版本库目录->属性->安全)。要不然,用户将无法提交他们的更改。
就算Apache以本机system来运行,你也要设置它能完全读写版本库目录。
如果没有为Apache配置这个许可,用户将会得到"禁止访问"的错误信息,在Apache的错误日志中表现为错误500。

 

2. 安装Subversion
运行Subversion安装程序,如果安装程序能够识别你已经安装了Apache,那么你的安装基本上就OK了。如果它不能,那么你要做一些额外的步骤。

首先来到Subersion的安装目录,进入它的bin目录,我们会发现如下两个文件:
mod_authz_svn.so
mod_dav_svn.so
我们把这两个文件复制一下,粘帖到apache的安装目录下的modules文件中,然后我们再打开apache安装目录下的conf文件夹,打开httpd.conf文件.增加如下两行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
注意,由于dav_svn需要dav_module的支持,所以要确保下面这两行没有被注释,并且保证在dav_svn之前加载:
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so

从Subversion的安装目录拷贝文件libdb43.dll到Apache的modules目录。

建立一个数据仓库

文件夹:h:/xxj/svn_root     然后我们用svnadmin的命令,使这个文件夹变成我们的数据仓库,命令如下:
svnadmin create h:/xxj/svn_root/project_1

如果运行成功的话,什么也没有输出,这个时候,我们再来到MyProject文件夹下面,我们会发现多了几个文件夹和文件,我们打开conf文件夹,然后再打开svnserve.conf文件,找到如下行# password-db = passwd,然后把它前面的#去掉,表示MyProject是需要密码验证的.但是我们密码设在哪里呢,这个时候我们再打开conf文件夹下面的passwd文件,用文本编辑器打开,在[users]下面加上我们需要启动的人员的用户和密码,比如
[users]
xxj=123456
jack=12345678
这个的话,我们就启动了两个用户,一个叫xxj,密码是123456,一个叫jack,密码是12345678.然后我们保存passwd文件.然后,我们再建一个文件,叫access.auth,这个文件是设置访问权限的,里面内容如下:
[/]
xxj = rw
[project_1:/]
jack=r

这表示,project_1下面的所有子目录xxj都是有权限读写的,但是jack只有权限读写此项目下面的test_1目录,这个各自的访问权限就分的更细致了.有关于project_1文件夹下面的设置,我们就告一段落了,我们现在开始设置apache,使它能和subvertion一起工作.

然后模块的设置就完成了,下面我们要设置SVN的目录,以使我们的apache能知道访问不同的URL的时候,它去哪里寻找这个URL所对应的SVN目录.
在httpd.conf文件中,增加如下内容:
<Location /svn>
DAV svn

SVNParentPath h:/xxj/svn_root
SVNListParentPath on

AuthzSVNAccessFile h:/xxj/svn_config/access.auth
#Satisfy Any
Require valid-user

AuthType Basic
AuthName "Subversion repositories"
AuthUserFile  h:/xxj/svn_config/user.auth
Require valid-user
</Location>

添加完上面这些,我们会发现access.auth是我们刚才新建的,可是users.auth我们并没有新建啊.怎么就把它加进去了.不要急,现在我们就来生成users.auth文件.

进入apache的安装目录的bin文件夹,输入如下命令:

D:/Program Files/Apache Group/Apache2/bin>htpasswd -cb users.auth xxj 123456
Automatically using MD5 format.
Adding password for user hadeslee

D:/Program Files/Apache Group/Apache2/bin>

我们就会发现在bin目录生成了users.auth,我们可以看到,hadeslee用户名已经被添加进去了,密码是用MD5加密过的.然后我们还要增加用户呢,可以用如下方法:
D:/Program Files/Apache Group/Apache2/bin>htpasswd -b users.auth jack 12345678
Automatically using MD5 format.
Adding password for user tom

D:/Program Files/Apache Group/Apache2/bin>

只是在生成密码的时候,小了一个c的参数,因为c表示重新生成一个这样的文件,我们第一次的时候是要加的,后面我们要添加用户的时候,就不用这个c了.然后打开users.auth,会发现两个用户都已经在里面了,这个时候,我们把users.auth移到h:/xxj/svn_config/里面去,使我们上面的设置生效.

这个时候,我们的设置就完成了.可以在浏览器里面输入http://localhost/svn_root/project_1试试看.

如果以后我们还要加入其它的项目呢,
直接在 创建h:/xxj/svn_root/project_2

在windows中建立svn服务
如下命令

sc create svnservice binpath= "/"c:/Subversion/bin/svnserve.exe/" --service -r h:/xxj/svn_root" displayname= "SVNService" depend= Tcpip start= auto<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

说明与注意事项:

a.c:/Subversion为SVN服务端安装目录;

b.D:/ repository为各项目资源版本库的根目录;(即在此目录下可以建立多个项目的版本库,如testproject01等。)

c.start= auto表示这个服务随系统自动启动;

d.”=”前不能有空格,面后面必须有空格;

e.运行”net start svnservice”启动这个服务,”net stop svnservice”停止这个服务。

f.删除服务使用sc delete Svnservice命令

五.运行”net start svnservice”启动这个服务。

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息