技术开发 频道

为Subversion搭建基于SSL的Apache服务器

【IT168 技术文章】

    利用Subversion创建的仓库可以借助apche发布出去,让更多的开发人员访问;借助apache自身的用户管理,我们可以为Subversion进行用户和权限管理,使得只有相应权限的人才能访问我们资源;此外,为了更加安全,我们可以借助apache对于SSL的支持,使得开发人通过https访问仓库资源。下面分别介绍之。

    1 需要准备的程序 

    Apache

    可以到官方网站上下载:http://httpd.apache.org/download.cgi 

    注意:

    不是版本越高越好,只有2.0系列的支持;

    如果要搭建基于SSL的服务器,最好安装集成了openssl的版本;

    作者使用版本:apache_2.0.59-win32-x86-openssl-0.9.7j.msi Subversion

    2安装软件

    注意:

    1)要先安装Apache,再安装Subversion,这样subversion会自动为我们拷贝一些modules到apache中,避免了手动拷贝。

    2)在安装subversion时,在一个面版中要选择Apache modules,如下图:

    3) 若apache安装成功,可以在浏览器中访问之: http://localhost.;

    4)若subversion安装成功可以在命令行中输入svn version察看版本信息. 现在就可以利用subversion创建仓库, 具体的使用办法可以参阅相关文档.

    3配置apache, 发布仓库资源.

    打开apche配置文件夹下的httpd.conf文件(在... \apache\Apache2\conf下):
    在其中添加如下代码:
<Location /svn>

DAV svn
#give the repository path
SVNPath /absolute/path/to/repository

# allow all access

Satisfy Any
</Location>

    好了, 重启apache,我们就可以通过浏览器察看或subversion等工具访问仓库资源了。你可以打开浏览器输入: http://localhost/svn 。体验下成功的喜悦吧。

    介绍下,各个的作用
<Location /svn>

    中的svn就是我们要输入的地址;
    SVNPath给出了仓库的位置,为绝对地址;
    Satisfy Any表示允许任何人访问。

    现在,现在还有些不完备,比如我们可能要求只有注册的用户才能访问,不同的用户访问具有访问不同文件权限。这个的实现有多种方式,apache自身就提供了用户和权限管理的功能;此外,为了更好的进行用户管理,我们可以借助数据库,常用的有开源的MySQL。在此,我们介绍apache自带的管理。

    4创建用户

    Apache的 ..\apache\Apache2\bin文件下自带的程序:htpasswd.exe 即可完成用户创建。

    C:\Apache Group\Apache2\bin>htpasswd –cm /path/to/passwd/fileName admin

    好了,这样就在指定的路径处创建了一个指定名字的用户文件,并创建了一个用户名admin。其中c表示要创建新的文件,m表示要创建账户。这时候,会提示输入密码,并要求验证:
New password: *****
Re-type new password: *****
Adding password for user admin

    好了,一个账号建好了。可以接着建用户:
C:\Apache Group\Apache2\bin>htpasswd –m /path/to/passwd/fileName kevinl
New password: ******
Re-type new password: ******
Adding password for user kevinl

    注意,因为第一次已经创建了文件,此处只需要-m 即可,不需要c了。

    Ok,现在用户文件建好了。打开apache的httpd.conf文件,将<Location /svn>…< Location>改为:
<Location /svn>

DAV svn
#give the repository path
SVNPath /absolute/path/to/repository

AuthType Basic
AuthName “Xi’an server of NA mirror”
AuthUserFile /path/to/passwd/fileName
Require valid-user

</Location>

    好了,重启apache,访问,看是不是要输入密码了.如果我们还要求对各个用户对具体文件的权限管理的话,就进行下面的权限管理。

0
相关文章