大话人生

  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  299 随笔 :: 0 文章 :: 73 评论 :: 0 Trackbacks

自学SVN篇之Windows XP+apache+SVN配置及权限管理

Windows XP下搭建Apache+SVN的服务器环境来进行版本控制。在此篇分两个部分配置和权限

配置Apache

1.         windows下安装Apache http serverapache_2.0.55-win32-x86-no_ssl.msi

运行Apache http serverapache_2.0.55-win32-x86-no_ssl.msi)安装程序,出现如下界面:

2.         出现Apache HTTP Server 2.0.55的安装向导界面,点“Next”继续:

3.         确认同意软件安装使用许可条例,选择“I accept the terms in the license agreement”,点“Next”继续:

4.         Apache安装到Windows上的使用须知,请阅读完毕后,按“Next”继续

5.         设置系统信息,在Network Domain下填入您的域名(比如:goodwaiter.com),在Server Name下填入您的服务器名称(比如:www.goodwaiter.com,也就是主机名加上域名),在Administrator's Email Address下填入系统管理员的联系电子邮件地址(比如:yinpeng@xinhuanet.com),上述三条信息仅供参考,其中联系电子邮件地址会在当系统故障时提供给访问者,三条信息均可任意填写,无效的也行。下面有两个选择,图片上选择的是为系统所有用户安装,使用默认的80端口,并作为系统服务自动启动;另外一个是仅为当前用户安装,使用端口8080,手动启动。

我在此以自己的机器为服务器设置network Domain(127.0.0.1),Server Name(127.0.0.1)port选择第一项设置为80(注意:如果你装了IIS需要将IIS的端口设置成非80端口或者选择apache端口为8080端口)一般选择如图所示。按“Next”继续。

6.         选择安装类型,Typical为默认安装,Custom为用户自定义安装,我们这里选择Custom,有更多可选项。按“Next”继续

7.         出现选择安装选项界面,如图所示,左键点选“Apache HTTP Server 2.0.55”,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即此部分,及下属子部分内容,全部安装在本地硬盘上。点选“Change...”,手动指定安装目录。

我这里选择安装在“D:\Apache”,各位自行选取了,一般建议不要安装在操作系统所在盘,免得操作系统坏了之后,还原操作把Apache配置文件也清除了。选“OK”继续。

返回刚才的界面,选“Next”继续。

8.         确认安装选项无误,如果您认为要再检查一遍,可以点“Back”一步步返回检查。点“Install”开始按前面设定的安装选项安装。

9.         正在安装界面,请耐心等待,直到出现下面的画面。

10.     安装向导成功完成,这时右下角状态栏应该出现了下面的这个绿色图标,表示Apache服务已经开始运行,按“Finish”结束Apache的软件安装

11.     我们来熟悉一下这个图标,很方便的,在图标上左键单击,出现如下界面,有“Start(启动)“Stop(停止)“Restart(重启动)三个选项,可以很方便的对安装的Apache服务器进行上述操作。

12.     好了现在我们来测试一下按默认配置运行的网站界面,在IE地址栏打“http://127.0.0.1”,点转到,就可以看到如下页面,表示Apache服务器已安装成功。

现在开始配置Apache服务器,使它更好的替我们服务,事实上,如果不配置,你的安装目录下的Apache2\htdocs文件夹就是网站的默认根目录,在里面放入文件就可以了。这里我们还是要配置一下,有什么问题或修改,配置始终是要会的,如图所示,开始所有程序“Apache HTTP Server 2.0.55”“Configure Apache Server”“Edit the Apache httpd conf Configuration file”,点击打开。

XP的记事本有了些小变化,很实用的一个功能就是可以看到文件内容的行、列位置,按下图所示,点查看,勾选状态栏,界面右下角就多了个标记,“Ln 78, Col 10”就表示 78,列 10”,这样可以迅速的在文件中定位,方便解说。当然,你也可以通过编辑查找输入关键字来快速定位。每次配置文件的改变,保存后,必须在 Apache服务器重启动后生效,可以用前面讲的小图标方便的控制服务器随时重启动

现在正式开始配置Apache服务器,“Ln 228”,或者查找关键字“DocumentRoot”(也就是网站根目录),找到如下图所示地方,然后将""内的地址改成你的网站根目录,地址格式请照图上的写,主要是一般文件地址的“\”Apache里要改成“/”

“Ln 253”,同样,你也可以通过查找“<DIRECTORY”来定位,以后不再说明,将""内的地址改成跟DOCUMENTROOT的一样。< P>

“Ln321”DirectoryIndex(目录索引,也就是在仅指定目录的情况下,默认显示的文件名),可以添加很多,系统会根据从左至右的顺序来优先显示,以单个半角空格隔开,比如有些网站的首页是index.htm,就在光标那里加上“index.htm ”文件名是任意的,不一定非得“index.html”,比如“test.php”等,都可以。

这里有一个选择配置选项,以前可能要配置,现在好像修正过来了,不用配置了,就是强制所有输出文件的语言编码,html文件里有语言标记(,这个就是设定文档语言为gb2312)的也会强制转换。如果打开的网页出现乱码,请先检查网页内有没有上述 html语言标记,如果没有,添加上去就能正常显示了。把“# DefaultLanguage nl”前面的“# ”去掉,把“nl”改成你要强制输出的语言,中文是“zh-cn”,保存,关闭。

好了,简单的Apache配置就到此结束了,现在利用先前的小图标重启动,所有的配置就生效了,你的网站就成了一个网站服务器,如果你加载了防火墙,请打开808080端口,或者允许Apache程序访问网络,否则别人不能访问。如果你有公网IP(一般ADSL或电话拨号上网的都是),就可以邀请所有能上网的朋友访问使用http://你的IP地址(IP地址查询可访问http://www.goodwaiter.com,查询内容内即是)你的网站了;如果你没有公网IP,也可以把内网IP地址告诉局域网内的其它用户,让他们通过http://你的内网IP地址,访问你的网站。

配置Subversion

Subversion有两种运行方式,一种是基于Apache Http Server,另外一种是Subversion Standalone Server。下面我讲解的是基于Apache Http ServerSubversion,这样做几个好处:A.能使用WebDAV协议。B.能使用浏览器作为客户端工具浏览源码仓库。C.可以很容易的支持到SSPIWindows域认证)和LDAPAD?),这些都是Apache本身就支持的。D.能得到比较完善的Apache安全认证系统,比如SSL加密连接。

1.         安装Subversionsvn-1.2.3-setup.exe)安装路径为:D\Subversion

2.         检查d:\apache\apache2\modules下是不是已经有了mod_dav_svn.somod_authz_svn.solibdb42.dll3个文件,如果没有,从D\Subversion\bin下复制这3个到d:\apache\apache2\modules如图:

3.         搜索d:\apache\apache2\conf\httpd.conf配置文件中的

LoadModule dav_svn_module "d:/Subversion/bin/mod_dav_svn.so"

LoadModule authz_svn_module "d:/Subversion/bin/mod_authz_svn.so"

LoadModule dav_fs_module modules/mod_dav_fs.so

把前面的注释#去掉,如图:

注意:

请先安装Apache,然后再安装Subversion,在安装Subversion过程中它会自动拷贝相应文件到相应目录中,并且修改http.conf文件,然后重新启动apache服务使修改生效。但是我发现现在这个版本的Subversion安装文件可能有个bugapachehttp.conf的配置文件中#LoadModule dav_fs_module modules/mod_dav_fs.so注释没有去掉,所以大家还是小心检查一下。如果你是先安装的Subversion,然后再安装的Apache的,那么上述的步骤一个也不能漏,都需要自己手动完成。

4.         打开d:\apache\apache2\conf\httpd.conf配置文件在末尾处加入以下参数:

<Location /svn>

DAV svn #指定以SVN访问

SVNPath d:\svndata\test #指定根目录位置,此时只要输入http://127.0.0.1/svn就可以直接访问

AuthType Basic

AuthName "Windy SVN"

AuthUserFile d:\svndata\test\passwd #指定用户认证的文件位置

AuthzSVNAccessFile d:\svndata\test\conf\authz #指定授权认真的文件位置

Require valid-user

</Location>

5.         建立仓库
打开CMD命令行界面,"开始" -> "运行" -> "cmd" -> "回车"
C:\Documents and Settings\administrator> d:   //
进入D(因为我们要在D盘下创建仓库)
D:\> md svndata   //
创建一个名叫svndata的目录
D:\> cd D:\Subversion\bin  //
进入subversion/bin目录
D:\Subversion\bin > svnadmin create d:\svndata\test   //
svnadmin命令创建名为test的仓库(这条命令成功后,在test下会出现很多文件夹和文件)

D:\Subversion\bin >cd\ //退出到D盘根目录
D:\> cd D:\Apache\Apache2\bin   //
进入apache\bin目录

创建用户

l  使用MD5加密,创建用户和passwd文件(passwdapache中的htpasswd创建)
D:\ \Apache\Apache2\bin > htpasswd -cm d:\svndata\test\passwd user1   //
htpasswd命令创建第一个用户(user1),同时生成密码认证文件,c参数为create,m参数为MD5加密方式
New password: ******
Re-type new password: ******
Adding password for user user1   //
加入用户成功
C:\Program Files\Apache Group\Apache2\bin> htpasswd -m d:\svndata\test\passwd user2   //
htpasswd命令创建第二个用户(user2),注意如果在这时加入c参数会覆盖掉之前创建的用户及文件。
New password: ******
Re-type new password: ******
Adding password for user user2   //
加入用户成功

l  直接在apache配置文件中指定passwd用户认证文件(passwd可以事先在passwd中创建)

打开d:\apache\apache2\conf\httpd.conf配置文件在末尾处修改以下参数:

<Location /svn>

DAV svn

SVNPath d:\svndata\test

AuthType Basic

AuthName "Windy SVN"

AuthUserFile d:\svndata\test\conf\passwd

AuthzSVNAccessFile d:\svndata\test\conf\authz

Require valid-user

</Location>
重新启动apache,进行测试。
IE打开http://localhost/svn,这时应该可以看到

Subversion权限管理配置

以前面的配置为标准引用一个实际的例子:

厦门央瞬公司是一家电子元器件设备供应商,其中有个ARM部门,专门负责ARM芯片的方案设计、销售,并在北京、上海各设立了一个办事处。对于工作日志,原先采用邮件方式发给经理,但是这种方式有个缺点,那就是不具备连续性,要看以前的日志必须一封一封邮件去查看,很麻烦。于是就想到利用 Subversion 让员工在自己电脑上编辑日志,然后利用svn传送回来,既方便员工自己编写日志,又方便对日志的归档处理,而且提交日志的时候只需要执行一下 svn commit 即可,比发送邮件还要简单的多。

部门文档的目录结构如下::

test                部门名称
   
├─diary           工作日志目录
   
  ├─headquarters    总部工作日志目录
   
  ├─beijing         北京办日志目录
   
  └─shanghai        上海办日志目录
   
├─ref             公司公共文件参考目录
   
└─temp            临时文件目录

人员情况

  - morson
,公司总经理,不习惯使用电脑,更喜欢传统的纸与笔,以及面对面的交流
  - michael
arm事业部的部门经理,没事的时候喜欢弄点儿新技术,用svn来管理日志,就是他想出来的主意
  - scofield
,北京办人员,老员工,为人油滑难管
  - lincon
,上海办人员,老员工,大老实人一个
  - linda
,总部协调员、秘书,文笔不错,长得也不错
  - rory
,单片机技术员,技术支持

访问权限需求分析

  -
允许总经理、部门经理读取所有文件。顺便给他们开放写权限,以便体现对他们职位的尊重,虽然对于某些文件来说,他们若拥有权限其实也没什么用处
  -
除部门经理外,所有其他人员,均只能看到本办事处人员工作日志
  -
不允许匿名访问
  - ref
目录只允许经理和秘书读写,对其他人只读
  - temp
目录人人都可以随意读写

在服务器端d:\svndata\test\conf配置svnserve.conf

[general]
    password-db = passwd.conf
    anon-access = none
    auth-access = write
    authz-db = authz.conf
在服务器端d:\svndata\test\conf配置passwd.conf进行用户创建

[users]
    morson = ShowMeTheMoney
    michael = mysecretpassword
    scofield = hellolittilekiller
    lincon = asyouknows111
    rory = 8809117
    linda = IlikeWorldCup2006

在服务器端d:\svndata\test\conf配置authz.conf进行用户创建

[groups]

g_vip = morson

g_manager = michael

g_beijing = scofield

g_shanghai = lincon

g_headquarters = rory, linda

g_docs = linda

 

[/]

@g_manager = rw

* = r

 

[/diary/headquarters]

@g_manager = rw

@g_headquarters = rw

@g_vip = r

* =

 

[/diary/beijing]

@g_manager = rw

@g_beijing = rw

@g_vip = r

* =

 

[/diary/shanghai]

@g_manager = rw

@g_shanghai = rw

@g_vip = r

* =

 

[/ref]

@g_manager = rw

@g_docs = rw

* = r

 

[/temp]

* = rw

Subversion仓库的访问

这样SVN的配置权限设置完毕,如果你想checkout服务器SVN的文件,你还需要开启svnserver服务

开启server服务

运行命令cmd,进入命令提示符中

C:\Documents and Settings\administrator> d:   //进入D(因为我们要在D盘下创建仓库)
D:\> cd D:\Subversion\bin >svnserver –d –r d:\svndata\test //
启动svnserver服务

现在你只需要使用客户端的checkout命令,然后地址栏中输入svn://127.0.0.1/就可以获取服务器SVN的内容

posted on 2008-04-17 12:46 大话人生 阅读(2471) 评论(0)  编辑 收藏 引用 所属分类: 配置管理
只有注册用户登录后才能发表评论。