2013-09-12 12:13:42
来 源
ITJS.CN
Apache
该篇讲述window服务器上Apache和SVN配置及权限管理,希望对于初学Apache服务器相关的朋友有帮助,更多Apache安装、配置、报错处理等资源请本站内搜索。

配置Apache

1.         在windows下安装Apache http server(apache_2.0.55-win32-x86-no_ssl.msi)

运行Apache http server(apache_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下填入系统管理员的联系电子邮件地址(比?a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="32d591884b5b5c42575c55724a5b5c5a47535c57461c515d5f">[email protected]),上述三条信息仅供参考,其中联系电子邮件地址会在当系统故障时提供给访问者,三条信息均可任意填写,无效的也行。下面有两个选择,图片上选择的是为系统所有用户安装,使用默认的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配置就到此结束了,现在利用先前的小图标重启动,所有的配置就生效了,你的网站就成了一个网站服务器,如果你加载了防火墙,请打开80或8080端口,或者允许Apache程序访问网络,否则别人不能访问。如果你有公网IP(一般ADSL或电话拨号上网的都是),就可以邀请所有能上网的朋友访问使用http://你的IP地址(IP地址查询可访问http://www.goodwaiter.com,查询内容内即是)你的网站了;如果你没有公网IP,也可以把内网IP地址告诉局域网内的其它用户,让他们通过http://你的内网IP地址,访问你的网站。

配置Subversion

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

1.         安装Subversion(svn-1.2.3-setup.exe)安装路径为:D:/Subversion下

2.         检查d:/apache/apache2/modules下是不是已经有了mod_dav_svn.so和mod_authz_svn.so,libdb42.dll这3个文件,如果没有,从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安装文件可能有个bug,apache的http.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文件(passwd由apache中的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的内容

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。