• 沒有找到結果。

服务器与存储项目实践教程 - 万水书苑-出版资源网

N/A
N/A
Protected

Academic year: 2021

Share "服务器与存储项目实践教程 - 万水书苑-出版资源网"

Copied!
54
0
0

加載中.... (立即查看全文)

全文

(1)

——基于 LAMP 架构的企业信息系统构建 

3.1  项目背景

中科资讯集团下属有  3  个分公司,分别在广州、上海、北京,总部设在广州。公司设有 总经理办公室、技术部、管理部、财务部、销售部、生产研发部及市场部七大部门,集团现有  1500 人,总部占了 1/3,且每年大约有 10%的新员工入职。除总经理办公室外,每个部门在分 公司都设有相应的工作人员。公司主要开发生产信息化产品,且在市场上具有比较高的声誉, 但需要销售和技术人员具有一定的 IT 技术能力。公司采用渠道分销的方式卖产品,现在全国 渠道有 800 家, 渠道的工作人员经常打电话到中科资讯集团的销售人员处索要电子资料及相关 文档, 优惠政策无法快速地传达到渠道的手中, 子公司的工作人员无法很好地得到总部技术人 员的及时支持,上传下达的渠道极不灵活(现在只能通过电话和传真实现),客户的资料也无 法得到很好的集中管理和智能的分类。分公司都有各自的文件服务器,IT  建设各自为政,总 经理办公室经常无法得到最及时的数据,以至于做出了错误的决策,使公司的营业额在  2009  年缩水 15%,且绝大部分的原因是信息流不畅以至于几个大项目未能中标。 

3.2  实施角色 

IDC 技术支持及网络工程师。 

3.3  需求分析

公司的现有信息系统及网络是一个非常简单的 100M 以太网网络, 公司只有一台老旧的文 件服务器在 IBM  X3650 服务器上运行,经常有公司员工抱怨文件服务器太慢,服务器文件上 有病毒,上传下载一个文件时间太长,且无法进行外网访问。还有一台原有的 WWW 门户网 站服务器,运行在 IBM X346 服务器上,采用 Windows 系统,运行 IIS 服务器,全部为静态页 面,无留言和反馈路径。一条 10M  光纤专线,经常带宽占用 90%以上,网站服务器由一台  Cisco 2621 的路由器和一台 Cisco 3650 的三层交换器及多台华为二层交换机组成。痛定思痛, 通过长期的市场调查,集团领导决定购买多台高性能机架式服务器联想 R520,安装 NAS 文件 系统、WWW 门户网站、CRM 客户关系管理系统、邮件系统,希望能够马上看到效果。 经过公司  IDC  技术支持和网络工程师的论证和深入分析,一致认为应采用集中式管理, 采用基于 LAMP 技术的信息基础架构,服务器群全面安装 Linux 操作系统,运行 PHP 脚本语 言和 MySQL 数据库开发的 Web 等开源信息系统,应用 VMware 虚拟化软件实施项目及测试。

(2)

信息化建设,同时对数据进行全方位的保护。所有应用系统全部部署在总部,分公司及渠道所 有业务往来全部通过信息化方式交流。

3.4  项目设计

根据需求,设计项目的网络拓扑结构如图 3­1 所示。 图 3­1  项目网络拓扑结构 安装  Linux  操作系统的服务器作为防火墙接入互联网,并作 DHCP  和网关,另一端接入 核心交换机。在核心交换机上,接入 8 台二层交换机,其中一台作为整个服务器群的接入点。 则公司的各个部门就分别使用另外的  7  台交换机接入网络。在核心交换机上划分一个特定的  VLAN 给网络管理员进行网络管理。考虑到公司人数比较多,而 10M 光纤带宽不再满足现有 网络的需求,所以将其升级到 100M 光纤的带宽。 为防止不可预知的人为事故或意外灾难破坏公司的信息系统,将对整个信息系统的数据 进行定期备份。 将 Windows 2003 服务器进行升级作为备用,使其支持需求中的协议。 服务器群  NAS 备份  CRM  E­mail  外服务区  VLAN11(192.168.11.0/24)  NAS  Web  DNS  2003  内服务区  VLAN12(192.168.12.0/24)  … … … … … … … …   SWServer  CORESW  防火墙+DHCP  202.96128.1  Internet  100M 带宽光线 网络管理网段  VLAN10  192.168.10.0/24  总经理办公室  VLAN2  192.168.2.0/24  技术部  VLAN3  192.168.3.0/24  管理部  VLAN4  192.168.4.0/24  财务部  VLAN5  192.168.5.0/24  销售部  VLAN6  192.168.6.0/24  市场部  VLAN7  192.168.7.0/24  生产研发部  VLAN8  192.168.8.0/24

(3)

基于 Linux 与其他开源软件构建的信息系统主要包括 NAS 文件系统、CRM 客户管理系 统、E­mail 服务系统、Web 服务系统及 DNS 服务系统。 (1)Web。Web 服务将放置在划分好的服务器群中的外服务区。安装 Apache 软件及支持 动态网页脚本语言及软件,提供相应的网站服务。网站运行实施数据与 Web 服务分离,将数 据存放在 NAS 服务器上,以确保网站数据的安全、可靠和高可用性。 外部网络访问防火墙上的  80  端口将直接指向本机的 80  端口,以提供对外部网络的访问 服务,并且提高 Web 服务器的安全性。 (2)E­mail:E­mail  服务将放置在划分好的服务器群中的外服务区。安装  Postfix+  Apache+MySQL+Dovecot 集成平台提供相应的 E­mail 服务。E­mial 服务将实行数据与站点分 离,将数据存放在 NAS 服务器上,以确保网站数据的安全、可靠和高可用性。 外部网络访问防火墙上的 25 和 110 端口将直接指向本机的 25 和 110 端口, 以提供对外部 网络的访问服务,并且提高对 E­mail 服务的安全性。 (3)DNS。DNS  服务器将直接对内部网络提供服务。DNS  服务器将提供各服务器的域 名与 IP 映射记录,包括: l  Web 服务器:192.168.11.2,www.yingdong.com。 l  E­mail 服务器:192.168.11.3,mail.yingdong.com。 l  NAS 服务器:192.168.11.4,nas.yingdong.com。 l  CRM 服务器:192.168.12.3,crm.yingdong.com。 l  Win2003:192.168.12.4,2003.yingdong.com。 (4)NAS。安装 Openfiler 系统来实现对系统内部文件的集中管理,包括 samba 服务、ftp  服务、nfs 服务等。 (5)CRM。实现对公司客户关系的管理。 

3.5  项目关键技术 

3.5.1    LAMP  LAMP  平台由几个组件组成,分别是:Linux+Apache+MySQL+Perl/PHP/Python,是一组 常用来搭建动态网站或者服务器的开源软件, 其本身都是各自独立的程序, 随着开源软件的发 展,拥有了越来越高的兼容度,共同组成了一个强大的  Web应用程序平台。目前,开放源代 码的 LAMP 架构已经与J2EE和.NET商业软件架构形成三足鼎立之势,并且该软件开发的项目 在软件方面的投资成本较低,因此受到整个IT行业的广泛关注。从网站的流量上来说,互联网 上 70%以上的访问流量是由 LAMP 来提供的,LAMP 是功能最强大的网站解决方案之一。  LAMP 呈分层结构。每一层都提供了整个软件架构的一个关键部分。  Linux 处在最底层,提供操作系统作为运行基础,其他每个组件在其上运行。 次低层是  Apache,它是一个Web服务器。Apache  提供可让用户获得  Web  页面的机制。  Apache 是一款稳定的、 支持关键任务的服务器, Internet 大量的网站都使用它作为 Web 服务器。  PHP组件实际上是在 Apache 中,动态页面可以通过 Apache 和 PHP 创建。  MySQL 提供 LAMP 系统的数据存储端。有了 MySQL,便可以获得一个非常强大的、适

(4)

合运行大型复杂站点的数据库。在 Web 应用程序中,所有数据、产品、账户和其他类型的信 息都存放在这个数据库中,通过SQL语言可以很容易地查询这些信息。  PHP 是一门简单而有效的编程语言,它像是粘合剂,可以将 LAMP 系统所有其他的组件 粘合在一起。可以使用 PHP 编写能访问 MySQL 数据库中的数据和 Linux 提供的一些特性的 动态内容。  Perl 是一种脚本语言。这表示它并不编译成可执行程序,而是在运行时进行解释的一组指 令(脚本)。Perl 是代表“实际抽取和报告语言” (practical extraction and report language)的字

首组合词。Perl  被誉为语言中的“瑞士军刀” 。它功能强大且非常灵活。语言学家Larry  Wall 

在 20 世纪 80 年代后期在 NASA 担任系统管理员时开发了 Perl。他创建 Perl 的目的是使构建 报告的任务变得更简单。Perl 现在用来执行许多任务。它也许是用于在 Web 上进行 CGI(公 共网关接口) 编程最流行的语言。 其原因就是 Perl 是一种功能非常强大的文本处理器,而 Web  编程主要就是文本处理。另外,使用 Perl 通常比使用 C/C++、Java 或 Tcl 更简单,而且它比  Python 更早出现。Perl 被称为是一种“胶水语言” 。所谓胶水语言,也就是说它是可以用来将 许多元素连接在一起的语言。  Python是一种交互式面向对象的解释型编程语言。 Python 使用非常清晰的语法实现非常强 大的功能,具有模块、类、意外处理,以及非常高级别的动态数据类型和动态定义。并且,它 具有接口和库函数供多种系统调用。内建模块还可以使用 C 或C++语言方便地编写。 对于用户

界面的编程,Python 同样能够胜任。Python 可以运行在 Linux、UNIX、Windows、DOS、OS/2、  Mac、Amiga 等多种环境下。Python 虽然有版权,但完全可以免费使用和分发,甚至是为了商 业用途。 

3.5.2    DNS 

DNS(Domain  Name  System,域名系统)是由解析器和域名服务器组成的。域名服务器

指保存有该网络中所有主机的域名与对应 IP 地址映射的记录, 并可将域名转换为 IP 地址功能 的服务器。DNS 域名服务器主要有三种形式:主服务器、辅助服务器和缓存服务器。  DNS 域名对应计算机上的一个 IP 地址。在 Internet 上域名与IP 地址之间是一对一、一对 多或者多对一的,域名虽然便于人们记忆,但计算机之间只能互相认识 IP 地址。将域名映射 为 IP 地址的过程就称为“域名解析” 。域名解析由专门的 DNS 服务器来完成。  DNS 域名采用类似目录树的等级结构命名, 域名是由圆点分开的一串单词或缩写组成的, 如  163.com、mail.gdsdxy.cn  等。通常用于Internet等TCP/IP网络中,通过域名来查找计算机和 服务。当用户在应用程序中输入 DNS 名称时,DNS 服务可以将此名称解析为 IP 地址。在上 网时,通常输入的是网站网址就是一台计算机的域名。域名经过 DNS 服务器的解析转换为 IP  地址返回给客户,客户机最终通过 IP 地址连接到网站服务器获得网站内容。  DNS  查询可以有两种解释:一种是指客户端查询指定  DNS  服务器上的资源记录(如  A  记录) ;另一种是指查询 FQDN 名的解析过程。 (1)查询 DNS 服务器上的资源记录。在 Windows 下使用命令行工具,输入 nslookup, 返回的结果包括域名对应的 IP 地址(A 记录)、别名(CNAME 记录)等。除了以上方法外, 还可以通过一些 DNS 查询站点查询域名的 DNS 信息。 (2)FQDN 名的解析过程查询。若想跟踪一个 FQDN 名的解析过程,在 Linux Shell 下输

(5)

入 dig www+trace,返回的结果包括从根域开始的递归或迭代过程,一直到权威域名服务器。  Bind 是一款开放源码的 DNS 服务器软件,Bind 是由美国加州大学 Berkeley 分校开发和 维护的,全名为 Berkeley Internet Name Domain,它是目前世界上使用最为广泛的 DNS 服务器 软件,支持各种 UNIX 平台和 Windows 平台。  3.5.3    NAS  NAS(Network Attached Storage,网络附加存储)是一种文件存储和备份共享设备,拥有 自己的文件系统, 通过 NFS 或 CIFS 等协议对外提供文件访问服务, 也称为网络直联存储设备、 网络磁盘阵列,是一种将分布、独立的数据整合为大型、集中化管理的数据存储技术,便于对 不同主机和应用服务器进行访问,从而释放带宽、提高性能、降低总拥有成本、保护投资。  Openfiler 是一个 NAS/iSCSI 的 SAN 服务器操作系统,主要目的就是提供 LAN 主机的独 立存储系统,硬件要求为:256MB 以上内存、1GB 硬盘安装空间、网卡、x86 系统计算机。  OpenFiler 提供了 iSCSI Target, 并且有 NFS 文件系统、 SMB 文件系统 (给 Windows 系统使用), 更可以使用 HTTP 来分享文件。主机可以使用 iSCSI  Initiator 来进行直接连接,也可以使用共 享文件夹或挂载的方式来访问 OpenFiler 上的数据。  Openfiler 软件包与开放源码应用程序(如 Apache、Samba、LVM2、ext3、Linux  NFS 和  iSCSI Enterprise Target)整合。Openfiler 将这些随处可见的技术组合到一个易于使用的小型管 理解决方案中,该解决方案通过一个基于 Web 且功能强大的管理界面实现。  3.5.4  E­mail  E­mail(Electronic Mail,电子邮件)又称电子信箱、电子邮政,它是一种用电子化手段提 供信息交换的通信方式。电子邮件的传输是通过电子邮件简单传输协议(Simple Mail Transfer  Protocol,SMTP)等技术来实现的。 无论从使用的广泛程度,还是从代码的复杂程度来讲,Sendmail  都是运行在  UNIX  类操 作系统上的一款非常优秀的电子邮件传输代理软件。如果使用它来构建网站的电子邮件系统, 基本上不必费心, 因为几乎所有 UNIX 的默认配置中都内置了这个软件, 只需要设置好操作系 统,它就能立即运转起来。在  UNIX  系统中,Sendmail  是应用最广的电子邮件服务器。它是 一个免费软件,可以支持数千甚至更多的用户,而且占用的系统资源相当少。不过,Sendmail  的配置复杂、 安全性不高, 主要是因为早期的 Internet 用户数量及邮件数量都相当小, Sendmail  的系统结构并不适合较大的负载,对于高负载的邮件系统,需要对 Sendmail 进行复杂的调整。  postfix  是  Wietse  Venema  在GPL  协议之下开发的邮件传输代理软件,开始是希望作为  sendmail 替代品的一个尝试。postfix 试图更快更容易管理、更安全,同时还与 sendmail 保持足 够的兼容性。postfix 的特点如下:

(1)postfix  免费。postfix  想要作用的范围是广大的  Internet  用户,试图影响大多数的  Internet 上的电子邮件系统,因此它是免费的。

(2)性能更高。postfix 在性能上大约比 sendmail 快三倍。一台运行 postfix 的 PC 每天可 以收发上百万封邮件。

(3)兼容性强。postfix 是与 sendmail 兼容的,从而使 sendmail 用户可以很方便地迁移到  postfix。postfix 支持/var[/spool]/mail、/etc/aliases、NIS 和~/.forward 文件。

(6)

(4)健壮性强。postfix 被设计成在重负荷之下仍然可以正常工作。当系统运行超出了可 用的内存或磁盘空间时, postfix 会自动减少运行进程的数目。 当处理的邮件数目增长时, postfix  运行的进程不会跟着增加。 (5)灵活性强。postfix 是由多个小程序组成的,每个程序完成特定的功能。可以通过配 置文件设置每个程序的运行参数。 (6) 安全性高。 postfix 具有多层防御结构, 可以有效地抵御恶意入侵者。 如大多数的 postfix  程序可以运行在较低的权限之下,不可以通过网络访问安全性相关的本地投递程序等。  3.5.5    Apache 

Web 服务器也称为 WWW(World  Wide  Web)服务器,其主要功能是提供网站网页信息 浏览服务。WWW 是 Internet 的多媒体信息查询工具,是发展最快和目前用得最广泛的网络服 务。Web 服务器使用 HTTP 协议连接,核心技术是超文本传输协议(HTTP)和超文本标记语 言(HTML),支持 B/S 结构的 Web 系统。Apache 是一款市场占有率极高的开源 Web 服务器软 件,与各种 WWW 服务提供的工具相比其特性更全、支持面更广、稳定性更强、扩展更丰富。 

Apache 源于 NCSAhttpd 服务器,经过多次修改,成为世界上最流行的 Web 服务器软件之 一。Apache 取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件, 所以不断有人来为它开发新的功能、新的特性,修改原来的缺陷。Apache  的特点是简单、速 度快、性能稳定,并可作为代理服务器来使用。本来它只用于试验Internet网络,后来逐步扩 展到各种UNIX系统中,尤其是对Linux的支持相当完美。 当 NCSAWWW服务器项目停顿后, 那些使用 NCSA WWW 服务器的人们开始交换他们用 于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样, 诞生了 Apache Group,后来这个团体在NCSA的基础上创建了 Apache。  Apache 有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache 是以进程为基础的 结构, 进程要比线程消耗更多的系统开支, 不太适合于多处理器环境, 因此, 在一个 Apache Web  站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。Apache  市场占有率达  50%~60%。世界上很多著名的网站如 Amazon、Yahoo!、W3  Consortium、Financial  Times 等 都是 Apache 的用户。它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持 跨平台的应用(可以运行在几乎所有的 UNIX、Windows、Linux 系统平台上) ,以及它的可移 植性等方面。  Apache Web 服务器软件拥有以下特性: l 支持最新的 HTTP/1.1 通信协议。 l 拥有简单而强有力的基于文件的配置过程。 l 支持通用网关接口。 l 支持基于 IP 地址和基于域名的虚拟主机。 l 支持多种方式的HTTP认证。 l 集成Perl处理模块。 l 集成代理服务器模块。 l 支持实时监视服务器状态和定制服务器日志。 l 支持服务器端包含指令(SSI)。

(7)

l 支持安全 Socket 层(SSL)。 l 提供用户会话过程的跟踪。 l 支持 FastCGI。 l 通过第三方模块可以支持 Java Servlets。  3.5.6    PHP  PHP(Hypertext Preprocessor,超级文本预处理语言)是一种 HTML 内嵌式的语言,也是 一种在服务器端执行的嵌入 HTML 文档的脚本语言,被广泛运用。PHP 免费且 PHP 开发系统 的源代码完全开放。 

PHP 于 1994 年由Rasmus  Lerdorf创建,简称原本为 Personal  Home  Page,开始只是作者  Rasmus Lerdorf 用 Perl 语言编写的一个简单程序,用来统计他自己网站的访问者。后来又用C  语言重新编写,包括可以访问数据库。  1995 年以 Personal Home Page Tools(PHP Tools)开始对外发表第一个版本,Lerdorf 写了 一些介绍此程序的文档,并且发布了 PHP 1.0。在这早期的版本中,提供了访客留言本、访客 计数器等简单的功能。以后越来越多的网站开始使用  PHP,并且强烈要求增加一些特性,如 循环语句和数组变量等。 在新的成员加入开发行列之后,PHP  2.0  于  1995  年发布。第二版定名为  PHP/FI(Form  Interpreter) 。PHP/FI 加入了对 MySQL 的支持,从此建立了 PHP 在动态网页开发上的地位。 到了 1996 年底,有 15000 个网站使用 PHP/FI。 

1997 年, 任职于 Technion IIT 公司的两个以色列程序设计师: Zeev Suraski 和 Andi Gutmans  重写了  PHP  的剖析器,成为  PHP  3  的基础,而  PHP  也在这个时候改称为  PHP:Hypertext  Preprocessor。经过几个月测试,开发团队在 1997 年 11 月发布了 PHP/FI 2,随后就开始 PHP 3  的开放测试,最后在 1998 年 6 月正式发布 PHP 3。Zeev Suraski 和 Andi Gutmans 在 PHP 3 发 布后开始改写 PHP 的核心,这个在 1999 年发布的剖析器称为 Zend  Engine,他们还在以色列 的 Ramat Gan 成立了 Zend Technologies 来管理 PHP 的开发。  2000 年 5 月 22 日,以 Zend Engine 1.0 为基础的 PHP 4 正式发布,2004 年 7 月 13 日则发 布了 PHP  5,PHP  5 使用了第二代的 Zend  Engine。PHP 包含了许多新特色,如强化的面向对 象功能、引入 PDO(PHP Data Objects,一个存取数据库的延伸函数库)、许多功能上的增强。 目前 PHP 4 已经不会继续更新,以鼓励用户转移到 PHP 5。2008 年 PHP 5 成为了 PHP 唯一的 有在开发的 PHP 版本。将来的 PHP  5.3 将会加入 Late  static  binding 和一些其他的功能强化。  PHP 6 的开发也正在进行中,主要的改进有移除 register_globals、magic quotes 和 Safe mode 的 功能。 3.5.7    MySQL  MySQL 是一个小型关系型数据库管理系统。关联数据库将数据保存在不同的表中,而不 是将所有数据放在一个大仓库内,提高了速度和灵活性。MySQL 的 SQL(结构化查询语言) 是用于访问数据库的最常用标准化语言。MySQL 软件遵循 GPL 公共原则,使用 GNU 通用公 共许可证,源代码完全开放,且体积小、速度快、总体拥有成本低,许多中小型企业为了降低 网站总体拥有成本选择了 MySQL 作为网站数据库。

(8)

MySQL 有如下特性:

l 使用 C 和 C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。

l 支持 AIX、 FreeBSD、 HP­UX、 Linux、 Mac OS、 Novell Netware、 OpenBSD、 OS/2 Wrap、  Solaris、Windows 等多种操作系统。 l 为多种编程语言提供了 API。这些编程语言包括C、C++、Python、Java、Perl、PHP、  Eiffel、Ruby 和 Tcl 等。 l 支持多线程,充分利用 CPU 资源。 l 优化的SQL查询算法,有效地提高查询速度。 l 既能够作为一个单独的应用程序应用在客户端服务器网络环境中, 又能够作为一个库 而嵌入到其他的软件中提供多语言支持,常见的编码如中文的 GB 2312 和 BIG5、日 文的 Shift_JIS 等都可以用作数据表名和数据列名。 l 提供 TCP/IP、ODBC 和 JDBC 等多种数据库连接途径。 l 提供用于管理、检查、优化数据库操作的管理工具。 l 可以处理拥有上千万条记录的大型数据库。 l 支持多种存储引擎。 可以使用命令行工具管理MySQL 数据库(mysql 和 mysqladmin 命令), 也可以从 MySQL  的网站下载图形管理工具 MySQL Administrator、 MySQL Query Browser 和 MySQL Workbench。  phpMyAdmin 是一个由 PHP 写成的 MySQL 数据库系统管理 程序,让管理者可以用 Web  界面管理  MySQL  数据库。另外,还有其他的  GUI  管理工具,如  mysql­front、ems  mysql  manager,navicat 等。常用的管理工具如下:

(1)MySQL Workbench。MySQL Workbench 是一个由 MySQL 开发的跨平台、可视化数 据库工具。它作为 DBDesigner4 工程的替代应用程序而备受瞩目。MySQL  Workbench 可以作 为 Windows、Linux 和 OS X 系统上的原始 GUI 工具,它有各种不同的版本。 (2)phpMyAdmin。phpMyAdmin 是一款免费的、用 PHP 编写的工具,用于在网络上管 理 MySQL,它支持 MySQL 的大部分功能。这款含有用户界面的软件能够支持一些最常用的 操作(如管理数据库、表格、字段、联系、索引、用户、许可等),同时还可以直接执行任何  SQL 语句。 它所具备的特性如下: l 直观的 Web 界面。 l 支持大多数 MySQL 功能。 l 浏览和丢弃数据库、表格、视图、字段和索引。 l 创建、复制、删除、重命名、更改数据库、表格、字段和索引。 l 维护服务器、数据库、表格,能对服务器的配置提出建议。 l 执行、编辑和标注任何 SQL 语句,甚至批量查询。 l 管理 MySQL 用户及用户权限。 l 管理存储的过程(Stored Procedures)和触发器(Triggers)。 l 从 CSV 和 SQL文件格式中导入数据。 l 能够以多种格式导出数据:CSV、SQL、XML、PDF、ISO/IEC 等。 l 管理多台服务器。

(9)

l 为数据库布局创建 PDF 图表。 l 使用 Query­by­example(QBE)创建复杂的查询。 l 在数据库中进行全局搜索或者在数据库的子集中进行搜索。 l 用预定义的函数把存储的数据转化成任何格式。 l 其他更多特性。 (3) Aqua Data Studio。 对于数据库管理人员、 软件开发人员、 业务分析师来说, Aqua Data  Studio 是一个完整的集成开发环境 (IDE)。它主要具备以下 4 个方面的功能: l 数据库查询和管理工具。 l 一套数据库、源代码管理以及文件系统的比较工具。 l 为 Subversion(SVN)和 CVS 设计了一个完整的集成源代码管理客户端。 l 提供一个数据库建模工具(Modeler),它和最好的独立数据库图表工具一样强大。 (4)SQLyog。SQLyog  是一个全面的  MySQL数据库管理工具(/'GUI'/'Frontend')。它的 社区版(Community  Edition)是具有 GPL 许可的免费开源软件。这款工具包含了开发人员在 使用 MySQL 时所需的绝大部分功能:查询结果集合、查询分析器、服务器消息、表格数据、 表格信息、查询历史,它们都以标签的形式显示在界面上,开发人员只要单击即可。此外,它 还可以方便地创建视图和存储过程。 (5)MYSQL Front。这个 MySQL 数据库的 GUI 是一个“真正的”应用程序,它提供的 用户界面比用 PHP 和 HTML 建立起来的系统更加精确。 不会因为重载 HTML 网页而导致延时, 所以它的响应是即时的。如果供应商允许的话,可以让 MySQL­Front 直接与数据库进行工作。 如果不行,也只需要在发布网站上安装一个小的脚本。登录信息会存储在硬盘上,因此不必再 登录到不同的网络界面上了。

(6)mytop。mytop  是一款基于控制台的工具(不是  GUI),用于监视线程以及  MySQL  3.22.x、3.23.x 和 4.x 服务器的整体性能。它可以在大多数安装了 Perl、DBI 和 Term::ReadKey  的 UNIX 系统上(包括 Mac 系统 OS  X)运行。如果安装了 Term::ANSIColor,则能够得到彩 色的视图。如果安装了 Time::HiRes,还可以得到一个不错的“每秒查询数”实时统计。mytop  0.7 版甚至还能在 Windows 上运行。 (7)Sequel Pro。Sequel Pro 是一款管理 MAC OS X 数据库的应用程序,它可以直接访问 本地和远程服务器上的 MySQL 数据库,并且支持从流行的文件格式中导入和导出数据,其中 包括 SQL、CSV 和 XML 等文件。最初,Sequel Pro 只是开源 CocoaMySQL 工程的一个分支。 部分特性如下: l 很容易就可以建立起一个到 Mac 电脑本地 MySQL 服务器的连接。 l 它具有全部的表格管理功能,包括索引。 l 支持 MySQL 视图。 l 它使用多窗口功能,能够立即支持多个数据库或表格。 (8)SQL Buddy。SQL Buddy 是一个强大的轻量级 Ajax 数据库管理工具。它非常易于安 装,只需要把文件夹解压到服务器里即可,还可以进行常见的绝大部分操作。 (9)MySQL Sidu。MySQL Sidu 是一款免费的 MySQL 客户端,它通过网络浏览器来运 行。Sidu 这几个字母表示 Select(选择)、Insert(插入)、Delete(删除)和 Update(更新)。  Sidu 其实还有更多的功能,它看起来更像 MySQL 前端软件的 GUI 而不是网页。

(10)

l 支持 SQL 选择、插入、删除、更新功能。

l 支持在浏览器上工作,如 Firefox、IE、Opera、Safari、Chrome 等。

l 看起来像 MySQL 前端软件的 GUI 而不是网页。

l  SIDU 可以跟 MySQL、Postgres 和 SQLite DBs 一起工作。

(10)Navicat  Lite  MySQL  Admin  Tool。Navicat 是一款快速、可靠的数据库管理工具。  Navicat  专门用来简化数据库管理并减少管理成本,它旨在满足数据库管理人员、数据库开发 人员以及广大中小企业的需要,它有一个很直观的 GUI,可以安全便捷地创建、组织、访问、 分享信息。 对于  MySQL 来说,Navicat  工具是一个强大的数据库管理和开发工具。它可以跟任何版 本的 MySQL 数据库服务器(3.21 版或以上版本)一起工作,并且支持 MySQL 大多数最新的 功能,包括 Trigger、Stored Procedure、Function、Event、View 和 Manage User 等。Navicat Lite  可以免费下载,但是仅适用于非商业活动。  3.5.8    VMware 虚拟化技术 虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实 的基础上运行。虚拟化技术可以扩大硬件的容量、简化软件的重新配置过程。CPU  的虚拟化 技术可以单 CPU 模拟多 CPU 并行,允许一个平台同时运行多个操作系统,并且应用程序都可 以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。 当下的  X86  计算机硬件是专为运行单个操作系统和单个应用程序而设计的,因此大部分 计算机远未得到充分利用。借助虚拟化,可以在单台物理机上运行多个虚拟机,每个虚拟机都 可以在多个环境之间共享同一台物理机的资源。 不同的虚拟机可以在同一台物理机上运行不同 的操作系统及多个应用程序。  VMware workstation 是 VMware 公司一款可以在一种操作系统平台上虚拟出其他一些操作 系统的虚拟机软件产品。 可以自由地对自己需要学习和试验的操作环境进行配置和修改, 不用 担心会导致系统崩溃,还可以让用户在单机上构造出一个虚拟网络来加强对网络知识的学习。 安装了 VMware workstation,可以在真实的主机操作系统中生成一台虚拟计算机,可安装并运 行操作系统。虚拟计算机共享主机的设备,以文件形式保存。因此,每台虚拟计算机之间以及 虚拟计算机与主机之间都相互独立。 如果一台虚拟计算机出现问题, 对主机以及其他的虚拟计 算机不会有任何影响。即当在重启出问题的虚拟计算机客户操作系统时还可继续其他工作。  VMware 虚拟化的工作原理是: 直接在计算机硬件或主机操作系统上插入一个精简的软件 层。该软件层包含一个以动态和透明方式分配硬件资源的虚拟机监视器(或称“管理程序” )。 多个操作系统可以同时运行在单台物理机上, 彼此之间共享硬件资源。 由于是将整台计算机 (包 括  CPU、内存、操作系统和网络设备)封装起来,因此虚拟机可以与所有标准的 X86 操作系 统、 应用程序和设备驱动程序完全兼容, 可以同时在单台计算机上安全运行多个操作系统和应 用程序,每个操作系统和应用程序都可以在需要时访问其所需的资源。  3.5.9    SSL 与 HTTPS 协议  SSL 协议是 Netscape Communication 公司推出在网络传输层之上提供的一种基于非对称密 钥和对称密钥技术的用于浏览器和 Web 服务器之间的安全连接技术。通常的连接方式中,通

(11)

信是以非加密的形式在网络上传播的,这就有可能被非法窃听,尤其是用于认证的口令信息。 为了避免这个安全漏洞, 就必须对传输过程进行加密。 对 HTTP 传输进行加密的协议为 HTTPS, 它是通过 SSL(安全 Socket 层)进行 HTTP 传输的协议。不但通过公用密钥的算法进行加密, 而且还可以通过获得认证证书 CA 来保证客户连接的服务器是安全的。  SSL 协议位于TCP/IP  协议与各种应用层协议之间,为数据通信提供安全支持。SSL 协议 可分为两层:SSL 记录协议(SSL Record Protocol) ,建立在可靠的传输协议(如 TCP)之上, 为高层协议提供数据封装、压缩、加密等基本功能的支持;SSL  握手协议(SSL  Handshake  Protocol) ,建立在  SSL  记录协议之上,用于在实际的数据传输开始前,通信双方进行身份认 证、协商加密算法、交换加密密钥等。  SSL 协议提供的服务主要有: l 认证用户和服务器,确保数据发送到正确的客户机和服务器。 l 加密数据以防止数据中途被窃取。 l 维护数据的完整性,确保数据在传输过程中不被改变。  SSL 协议的工作流程如下: (1)服务器认证阶段。  1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接。  2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的 “Hello”信息时将包含生成主密钥所需的信息。  3)客户根据收到的服务器响应信息产生一个主密钥,并用服务器的公开密钥加密后传给 服务器。  4)服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。 (2)用户认证阶段。在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户 的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密 钥,从而向服务器提供认证。 从 SSL 协议所提供的服务及其工作流程可以看出,SSL 协议运行的基础是商家对消费者 信息保密的承诺,这就有利于商家而不利于消费者。在电子商务初级阶段,由于运作电子商务 的企业大多是信誉较高的大公司, 因此这个问题还没有充分暴露出来。 但随着电子商务的发展, 各中小型公司也参与进来,这样在电子支付过程中的单一认证问题就越来越突出。虽然在 SSL  3.0  中通过数字签名和数字证书可以实现浏览器和 Web  服务器双方的身份验证,但是  SSL 协 议仍然存在一些问题, 比如只能提供交易中客户与服务器间的双方认证, 在涉及多方的电子交 易中,SSL 协议并不能协调各方间的安全传输和信任关系。在这种情况下,Visa 和 MasterCard  两大信用卡组织制定了 SET 协议,为网上信用卡支付提供了全球性的标准。  HTTPS(Secure Hypertext Transfer Protocol)称为安全超文本传输协议,由 Netscape 开发 并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS  实际上应用了 Netscape 的完全套接字层(SSL)作为 HTTP 应用层的子层(HTTPS 使用端口  443, 而不是像 HTTP 那样使用端口 80 来和 TCP/IP 进行通信)。 SSL 使用 40 位关键字作为 RC4  流加密算法,这对于商业信息的加密是合适的。HTTPS 和 SSL 支持使用 X.509 数字认证,如 果需要的话用户可以确认发送者是谁。HTTPS  是以安全为目标的  HTTP  通道,简单地说是  HTTP 的安全版。即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL。

(12)

3.6  项目实施与测试 

3.6.1  安装配置 DNS 服务器  1.在 Linux 系统上安装 DNS 服务器所需的 BIND 组件 (1)所需的组件 bind­9.3.4­10.Pl.el5 的安装过程如图 3­2 所示。 图 3­2    BIND 组件安装(一) (2)所需的组件  bind­chroot­9.3.4­10.Pl.el5、caching­nameserver­9.3.4­10.Pl.el5  的安装过 程如图 3­3 所示。 图 3­3    BIND 组件安装(二)

(13)

(3)安装完成后,DNS  服务器所需的  BIND  组件如图  3­4  所示。其中,所需组件有  bind­9.3.4­10.Pl.el5、bind­chroot­9.3.4­10.Pl.el5、caching­nameserver­9.3.4­10.Pl.el5、bind­utils­9.3.4­  10.Pl.el5、bind­libs­9.3.4­10.Pl.el5 等。 图 3­4    BIND 组件安装(三)  2.指定主机名称 在配置 DNS 服务器之前,先指定主机名称。具体操作步骤如下: (1)使用命令 vi /etc/sysconfig/network 进行配置,如图 3­5 所示。 图 3­5  使用命令对主机进行配置 (2)使用命令 vi  /etc/sysconfig/network 进入配置界面后,将原来的主机名 HOSTNAME  改为 dns.yingdong.com,如图 3­6 所示。

(14)

图 3­6  修改主机名  3.配置 DNS 服务器的正向解析 (1)配置 named.conf。  1)使用命令 cp ­p named.caching­nameserver.conf named.conf、vi named.conf 进入配置界 面,如图 3­7 所示。 图 3­7  使用命令进入配置界面 

2)在配置界面中,将  listen­on  port  53  {127.0.0.1;};改为  listen­on  port  53  {any;};,将  allow­query {localhost;};改为 allow­query {any;};, 将 match­clients {localhost;};match­destinations  {localhost;}; 改 为  match­clients  {any;};match­destinations  {any;}; , 将  include"/etc/named.  rfc1912.zones"; 改 为  include  "/etc/named.zones"; , 在  directory  "/var/named"; 与  dump­life  "/var/named/data/cache_dump.db"之间加入#  forward  frist;  #  forwarders  {202.96.128.86;};,如图  3­8 所示。

(15)

图 3­8  配置 named.conf 

(2)定义 zone。 

1)使用命令 cp ­p named.rfc1912.zones named.zones、vi named.zones 进入配置界面,如图  3­9 所示,配置界面的初始状态如图 3­10 所示。

图 3­9  使用命令进入配置界面 

2)在配置界面中,将图 3­10 中的 zone "localhost"和 zone "0.0.127.in­addr.arpa"这两段复制 到配置界面的末尾处,其中前者复制一个,后者复制两个。

将  zone  "localhost" 改 为  zone  "yingdong.com" , 将  file  "localhost.zone" 改 为  file  "yingdong.com.zone",将两段 zone "0.0.127.in­addr.arpa"分别改为 zone "11.168.192.in­addr.arpa"  和 zone "12.168.192.in­addr.arpa"。

(16)

图 3­10  配置界面的初始状态

将两段 file "named.local"分别改为 file "11.168.192.local"和 file "12.168.192.local"。

最后,将 zone "11.168.192.in­addr.arpa"和 zone "12.168.192.in­addr.arpa"这两段的每行的开

头都添加符号“#” ,用来表示将这两段加以注释,如图 3­11 所示。

图 3­11  加“#”的命令段表示加以注释

(3)建立数据库文件。 

1)使用命令 cp ­p /var/named/localdomain.zone /var/named/chroot/var/named/yingdong.com.  zone、vi /var/named/chroot/var/named/yingdong.com.zone 进入配置界面,如图 3­12 所示。

(17)

图 3­12  使用命令进入配置界面 

2)在配置界面中,将第二行的内容更改为: 

@  IN SOA      dns.yingdong.com.  root.yingdong.com. 

从第 8 行开始更改为:  @  IN NS      dns.yingdong.com.  dns  IN A      192.168.12.2  www  IN A      192.168.11.2  mail  IN A      192.168.11.3  nas  IN A      192.168.11.4  crm  IN A      192.168.12.3  2003  IN A      192.168.12.4  如图 3­13 所示。 图 3­13  更改命令

(18)

4.重启服务并配置客户端 (1)使用命令 service named restart  重启服务,使用命令  vi /etc/resolv.conf  进入客户端配 置界面,如图 3­14 所示。 图 3­14  重启服务器 (2)在配置界面中,将第二行的 nameserver 的 IP 地址更改为作 DNS 服务器的主机的 IP  地址 192.168.12.2,如图 3­15 所示。 图 3­15  修改 DNS 服务器的 IP 地址

(19)

5.用命令 nslookup 对 DNS 服务器的正向解析进行测试 测试结果如图 3­16 所示,从图中可以看出 DNS 服务器的正向解析成功。 图 3­16  测试正向解析结果  6.配置 DNS 服务器的反向解析 (1)定义反向解析的 zone。  1)使用命令 vi named.zones 进入配置界面,如图 3­17 所示。 图 3­17  使用命令进入配置界面

(20)

2)在配置界面中,将 zone "0.0.127.in­addr.arpa"这段内容复制到配置界面的末尾处且复制 两个。

将 两 段  zone  "0.0.127.in­addr.arpa" 分 别 改 为  zone  "11.168.192.in­addr.arpa" 和  zone  "12.168.192.in­addr.arpa" , 将 两 段  file  "named.local" 分 别 改 为  file  "11.168.192.zone" 和  file  "12.168.192.zone",如图 3­18 所示。 图 3­18  定义反向解析的 zone  (2)创建反向解析的 zone 文件。  1)使用命令 cp ­p /var/named/localhost.zone /var/named/chroot/var/named/11.168.192.zone vi  /var/named/ chroot/var/named/11.168.192.zone 进入配置界面,如图 3­19 所示。 图 3­19  使用命令进入创建反向解析 zone 的配置界面

(21)

配置界面的初始状态如图 3­20 所示。

图 3­20  配置界面的初始状态 

2)在配置界面中,将第二行的内容更改为: 

@      IN SOA      dns.yingdong.com.      root.yingdong.com. 

从第 8 行开始更改为:  @      IN NS      dns.yingdong.com.  2      IN PTR      www.yingdong.com.  3      IN PTR      mail.yingdong.com.  4      IN PTR      nas.yingdong.com.  如图 3­21 所示。 图 3­21  更改文件内容

(22)

3)使用命令 cp ­p /var/named/localhost.zone /var/named/chroot/var/named/12.168.192.zone vi  /var/named/ chroot/var/named/12.168.192.zone 进入配置界面,如图 3­22 所示。 图 3­22  使用命令进入配置界面 配置界面的初始状态如图 3­23 所示。 图 3­23  配置界面的初始状态  4)在配置界面中,将第二行的内容更改为: 

@  IN SOA      dns.yingdong.com.      root.yingdong.com. 

从第 8 行开始更改为: 

@      IN NS      dns.yingdong.com.  2      IN PTR      dns.yingdong.com.

(23)

3      IN PTR      crm.yingdong.com.  4      IN PTR      2003.yingdong.com.  如图 3­24 所示。 图 3­24  更改文件内容 (3)重启服务并用命令 nslookup 对 DNS 服务器的反向解析进行测试;使用命令 service  named restart 重启服务,如图 3­25 所示;测试结果如图 3­25 和图 3­26 所示,从图中可以看出  DNS 服务器的反向解析成功。 图 3­25  重启服务

(24)

图 3­26  反向解析测试结果  3.6.2  安装配置 NAS 服务器  1.安装 Openfiler  在需要配置  NAS  文件服务的主机上安装  Openfiler  系统以提供相应的文件服务。使用  VMware 虚拟机给 NAS 文件服务器上增加 4 个虚拟硬盘,重启计算机,通过光驱启动。安装 的操作步骤如下: (1)选择图形化或文本方式安装 Openfiler 系统。 (2)进入安装界面后,单击 Next 按钮进入磁盘分区设置界面。 (3)Openfiler  操作系统不支持自动分区,选择手工分区。 (4)单击 Next 按钮,系统会弹出一个警告界面,提示用户分区后磁盘上的数据可能会被 格式化。 (5)单击 Yes 按钮,进入磁盘分区界面。 (6)单击 New 按钮新建分区,在此需要创建以下 3 个分区。 l  /boot 分区:用于系统引导,一般划分 100~200MB 空间即可。 l  Swap 分区:交换分区,一般划分物理内存的 1~2 倍大小即可。 l  /根分区:根分区,Openfiler 系统的所有配置都存储在此分区。 (7)单击 Next 按钮,进入时区选择界面,选择亚洲上海即可。 (8)单击 Next 按钮,进入超级管理密码设置界面。 (9)单击 Next 按钮,进入开始软件包安装界面。

(25)

(10)单击 Next 按钮,正式进行分区格式化,软件包安装界面。 (11)用 5~10  分钟,即可完成软件包的安装。 (12)单击 Reboot 按钮重启计算机,进入操作系统选择界面。 (13)按回车键直接进入系统,用 1~2 分钟即可完成 Openfiler 系统的启动。  2.配置 NAS 服务  Openfiler 系统装好后,在浏览器上输入 https://  192.168.11.4:446 进行 NAS 服务配置,在 登录界面上输入管理员账户和密码,即 openfiler 和 123456,如图 3­27 所示。 图 3­27  登录 Openfiler  在 System 页面设置网络,如图 3­28 至图 3­30 所示。 图 3­28  网络设置

(26)

图 3­29  网络接口配置

图 3­30  网络访问设置

在 Volumes Lock Devices 中单击/dev/sdb 超链接,如图 3­31 所示。

图 3­31  块设备管理器

(27)

图 3­32  配置界面 单击 Create 按钮后出现如图 3­33 所示的界面。 图 3­33  创建分区界面 然后单击 Back to the list of physical storage devices 超链接回到 Block Device Management  管理界面,如图 3­34 所示。 图 3­34  块设备管理器

(28)

其他硬盘按照/dev/sdb 一样配置。 接下来创建 RAID5 设备, 单击 Software RAID, 如图 3­35  所示。 图 3­35  创建 RAID5  出现如图 3­36 所示的界面。 图 3­36  软件 RAID 管理器 接下来就会自动格式化,格式化完成后会出现如图 3­37 所示的界面。 图 3­37  软件 RAID 格式化 接下来创建 LVM 逻辑卷,单击 Volume Groups 按钮,进行如图 3­38 所示的配置。

(29)

图 3­38  创建 LVM 逻辑卷(一)

配置完以上内容后单击 Add volume group 按钮进行如图 3­39 所示的配置。

图 3­39  创建 LVM 逻辑卷(二)

完成后出现如图 3­40 所示的界面。

(30)

按照中科资讯公司的需求,将创建部门文件服务系统。为了确保用户的统一管理,在此 使用 LDAP 轻量级目录数据库进行用户和工作组管理。选择 Accounts,在 Authentication 内选 中 Use  LDAP  复选框,在 Base  DN 文配框中输入 dc=example,dc=com,在 Root  bind  DN 文本 框中输入 cn=openfiler,dc=example,dc=com,在 Root bind password 文本框中输入所要的密码, 将 Login SMB server to root DN  复选框选上,将 Allow user to change password  复选框选上, 然后将网页下拉,单击 Submit 按钮,如图 3­41 所示。 图 3­41  用户信息配置 做完后便开始创建部门组和部门工作人员账户。单击 Accounts→Administration 先创建一 个网络管理网段的工作组 wladmingroup,设定工作组 ID 为 1000,如图 3­42 所示。 图 3­42  组管理器

(31)

单击 Add Group 按钮后,如图 3­43 所示。

图 3­43  添加组

接下来创建工作组成员, 单击 User Administration, 增加一个成员 wladmin,如图 3­44 所示。

(32)

增加完成后如图 3­45 所示。

图 3­45  添加用户

同样地,要想增加其他工作组和组成员,操作同上,增加所有需求和所有的部门,并且 以部门名称创建相同名字的组成员。

创建 NAS 文件共享的方法是:单击 shares,在创建好的 LVM 中创建相应的部门共享文件

夹, 要是创建个人文件夹也一样。 创建工作组 wladmingroup 共享文件夹, 单击 Create Sub­folder 

按钮创建,如图 3­46 所示。

(33)

创建后单击 wladmingroup 按钮,然后在弹出的对话框中单击 Make Share 按钮,如图 3­47  和图 3­48 所示。 图 3­47  创建 NAS 文件共享(二) 图 3­48  创建 NAS 文件共享(三) 如果要让任何用户都可以共享文件夹,包括在其他组的用户也能共享,就选择  public  guest access; 如果要限制某些组内的成员访问该文件夹, 则选择 controlled access, 如图 3­49  所示。 对于 wladmingroup 文件夹的所有组是 wladmingroup,里面的所有成员均有读、写的权限, 而其他组成员则不能访问,这就限制了其他用户组,然后该文件夹提供了 Smb 和 Ftp 服务与  Windows 系统进行兼容。要想实现其他功能请用户自己选择。单击 services 选项,将需要的服 务选项打开,如图 3­50 所示。

(34)

图 3­49  创建 NAS 文件共享(四)

(35)

要想给每个用户进行磁盘配额,可以在 Qutoa 选项中根据需要进行配置。  1.配置的共享文件夹 

caiwubu  guanlibu  jishubu  shichangbu  shichangyanfabu 

xiaoshoubu  zongjinban  wladministrator 

各个文件夹只能在相应的网段才能用运行进行访问,在内外网均可用 ftp 对文件夹进行 访问。

2.数据备份

应用系统进行一次全备份,以便以后应用系统出现灾难时进行恢复。 (1)Web 服务器。 

/systembackup/www 是 NAS 服务器的一个文件夹, 现被挂载到当前应用系统的/nasbackup,

然后便可以将所需备份的数据备份到 NAS 服务器上。 应用系统分区全备份: 

dump ­0u ­f    /nasbackup/dev/wwwsda1.bak    /dev/sda1  dump ­0u ­f    /nasbackup/dev/wwwsda2.bak    /dev/sda2  dump ­0u ­f    /nasbackup/dev/wwwsda3.bak    /dev/sda3  (2)E­mail 服务器。 

/systembackup/mail 是 NAS 服务器的一个文件夹, 现被挂载到当前应用系统的/nasbackup,

然后便可以将所需备份的数据备份到 NAS 服务器上。 应用系统分区全备份: 

dump ­0u ­f    /nasbackup/dev/emailsda1.bak    /dev/sda1  dump ­0u ­f    /nasbackup/dev/emailsda2.bak    /dev/sda2  dump ­0u ­f    /nasbackup/dev/emailsda3.bak    /dev/sda3  (3)CRM 服务器。 

/systembackup/crm 是 NAS 服务器的一个文件夹,现被挂载到当前应用系统的/nasbackup, 然后便可以将所需备份的数据备份到 NAS 服务器上。

应用系统分区全备份: 

dump ­0u ­f    /nasbackup/dev/crmda1.bak    /dev/sda1  dump ­0u ­f    /nasbackup/dev/crmda2.bak    /dev/sda2  dump ­0u ­f    /nasbackup/dev/crmda3.bak    /dev/sda3  (4)DNS 服务器。 

/systembackup/dns 是 NAS 服务器的一个文件夹,现被挂载到当前应用系统的/nasbackup, 然后便可以将所需备份的数据备份到 NAS 服务器上。

应用系统分区全备份: 

dump ­0u ­f    /nasbackup/dev/dnsda1.bak    /dev/sda1  dump ­0u ­f    /nasbackup/dev/dnsda2.bak    /dev/sda2  dump ­0u ­f    /nasbackup/dev/dnsda3.bak    /dev/sda3 

按需求使用“完全备份+差分备份”的方式对数据进行备份,每周日进行一次全备份,周 一至周六将进行差分备份,在各个服务器上建立相应的要保存数据的路径,如表 3­1 所示。

(36)

表 3­1  服务器数据备份表

服务器 需备份的文件路径 已挂载的备份路径  NAS 备份服务器路径 

Web  /  /webback  /backup/web 

Email  /var/spool/mail  /emailback  /backup/email 

Crm  /var/lib/mysql/c3crm  /crmback  /backup/crm 

Nas  /mnt/vg001/lv001  /nasfileback/  /backup/nasback 

1)Web 服务器。

l 在根目录下创建 backsh 和 webback 文件夹。

l 在 backsh 中创建两个可执行文件,即 allwebback.sh 和 webback.sh。

①完全备份。在 allwebback.sh 中输入以下字符: 

todayofmonth="allwebback" 'date |date +%Y­%m­%d ­d ­ ' 

dump ­0u ­f "/webback/" $todayofmonth".bak" /usr/local/apache2/htdocs 

②差分备份。在 webback.sh 输入以下字符: 

todayofmonth="webback" 'date |date +%Y­%m­%d ­d ­' 

dump ­1u ­f "/ webback/"$todayofmonth".bak" /usr/local/apache2/htdocs/ 

2)E­mail 服务器。

l 在根目录下创建 backsh 和 emailback 文件夹。

l 在 backsh 中创建两个可执行文件,即 allemailback.sh 和 emailback.sh。

①完全备份。在 allemailback.sh 中输入以下字符: 

todayofmonth="allemailback" 'date |date +%Y­%m­%d ­d­'  dump ­0u ­f "//emailback /" $todayofmonth".bak" /var/spool/mail 

②差分备份。在 emailback.sh 输入以下字符: 

todayofmonth="emailback" 'date |date +%Y­%m­%d ­d ­'  dump ­1u ­f " //emailback /" $todayofmonth".bak" /var/spool/mail 

3)Crm 服务器。

l 在根目录下创建 backsh 和 crmback 文件夹。

l 在 backsh 中创建两个可执行文件,即 allcrmback.sh 和 crmback.sh。

①完全备份。在 allcrmback.sh 中输入以下字符: 

todayofmonth="allcrmlback" 'date |date +%Y­%m­%d ­d ­' 

dump ­0u ­f "/crmback /" $todayofmonth ".bak" /var/lib/mysql/c3crm 

②差分备份。在 emailback.sh 中输入以下字符: 

todayofmonth="emailback" 'date |date +%Y­%m­%d ­d ­' 

dump ­1u ­f "/ crmback /" $todayofmonth ".bak" /var/lib/mysql/c3crm 

4)Nas  服务器。

l 在根目录下创建 backsh 和 nasfileback 文件夹。

l 在 backsh 中创建一个可执行文件 nasfile.sh。

在 nasfile.sh 中输入以下字符: 

(37)

3.计划任务 在各个服务器上进行计划任务,使计算机能自动备份相应的数据,输入命令 crontab ­e 便 可以编辑计划任务。 (1)Web 服务器。  * * * * 0 /backsh/allwebback.sh  * * * * 1 / backsh /webback.sh  * * * * 2 / backsh /webback.sh  * * * * 3 / backsh /webback.sh  * * * * 4 / backsh /webback.sh  * * * * 5 / backsh /webback.sh  * * * * 6 / backsh /webback.sh  (2)E­mail 服务器。  * * * * 0 / backsh /allemailback.sh  * * * * 1 / backsh /emailback.sh  * * * * 2 / backsh /emailback.sh  * * * * 3 / backsh /emailback.sh  * * * * 4 / backsh /emailback.sh  * * * * 5 / backsh /emailback.sh  * * * * 6 / backsh /emailback.sh  (3)Crm 服务器。  * * * * 0 / backsh /allcrmback.sh  * * * * 1 / backsh /allcrmback.sh  * * * * 2 / backsh /allcrmback.sh  * * * * 3 / backsh /allcrmback.sh  * * * * 4 / backsh /allcrmback.sh  * * * * 5 / backsh /allcrmback.sh  * * * * 6 / backsh /allcrmback.sh  (4)Nas  服务器。  * * * * 0 / backsh /allcrmback.sh  3.6.3  安装配置邮件服务器 (1)配置 DNS 服务器。 查询当前邮件服务器域名及 IP 地址解析情况,如图 3­51 所示。 图 3­51  配置 DNS 服务器

(38)

(2)从 Nas 服务器下载以下安装包并安装:  openssl­devel­0.9.8e­7.el5  //安装加密工具 OPENSSL  rpm­build­4.4.2.3­9.el5  postfix­2.3.3­2.1.el5_2  //邮件 SMTP  dovecot­1.0.7­7.el5  //邮件 IMAP、POP3  cyrus­sasl­devel­2.1.22­4  //简单身份认证和安全层 SMTP 认证时使用  perl­Text­Iconv­1.7­1.el5.rf  perl­suidperl­5.8.8­18.el5  openwebmail­data­2.53­3  //免费开源的 Webmail 软件  openwebmail­2.53­3  httpd­devel­2.2.3­22.el5  //安装 HTTP 服务器  httpd­manual­2.2.3­22.el5  httpd­2.2.3­22.el5  mysql­server­5.0.45­7.el5  //安装 MySQL 服务器  telnet­server­0.17­39.el5  telnet­0.17­39.el5  (3)因 SMTP 在传输过程中并不会对数据进行加密,为了数据传输安全,使用以下命令 生成 CA 私钥及证书,使 postfix 的 SMTP 服务配合 SSL 的加密。  mkdir /etc/postfix/.certs  cd /etc/postfix/.certs 

openssl req ­new ­x509 ­keyout cakey.pem ­out cacert.pem ­days 730 

(4)使用以下命令生成 postfix 证书: 

openssl req ­nodes ­new ­x509 ­keyout smtpkey.pem ­out smtpcert.pem ­days 730 

(5)使用以下命令生成 POP3s 及 IMAPs 所需要的证书:  cd /etc/pki/tls/certs  make    /etc/pki/tls/certs/dovecot.pem  mv dovecot.pem /etc/postfix/.certs/  (6)基于安全考虑应修改生成的证书文件权限:  chmod ­R 600 /etc/postfix/.certs/  (7)修改/etc/postfix/main.cf:  myhostname = mail.yingdong.com  //邮件服务器主机名  mydomain=yingdong.com  //指定邮件服务器所在区域  myorigin=$mydomain  //指定发件人 DNS 后缀  mydestination=$mydomain  //指定 postfix  允许处理的邮件  inet_interfaces=all  //指定 postfix 系统监听的网络接口  mynetworks_style =subnet  //设置客户端 IP 地址匹配方法  mynetworks=192.168.11.0/24  //设置允许哪些客户端直接将需要转发到外部区域的邮件提交给 postfix  relay_domain=$mydomain  //当一个区域有多台服务器时可以通过 MX 记录设置各自的优先级  smtpd_sasl_auth_enable =yes  //服务器使用 SMPT 认证  smtpd_sasl_authenticated_header=yes  //不允许匿名方式通过认证  broken_sasl_auth_clients =yes  smtpd_helo_required=yes  smtpd_sasl_path =smtp  smtpd_sasl_local_domain=$myhostname  smtpd_sasl_security_options=noanonymous

(39)

(8) 修改 Telnet 服务的默认配置文件/etc/xinetd.d/telnet, 把"disable=yes"改为"disable=on"。 (9)创建 user001 和 user002 两个用户:  useradd user001  passwd user001  useradd user002  passwd user002  (10)重启 Postfix 服务和 Telnet 服务:  service postfix restart  service xinetd restart  (11)查看 25 网络端口,如图 3­52 所示。  netstat ­antup|grep 25  图 3­52  查看网络端口 (12)远程连接 192.168.11.3 的 25 端口:  #telnet 192.168.11.3 25  mail from:user001@yingdong.com  //发件人  rcpt to:user002@yingdong.com  //收件人  data  subject:test  //题目  hello  //内容  quit  //退出 如图 3­53 所示。 图 3­53  远程连接(一)

(40)

#su ­ user002  //进入 user002  mail  //查看邮件 如图 3­54 所示。 图 3­54  远程连接(二) (13)内容检查,修改/etc/postfix/header_checks 中的以下参数:  /^Received:/        HOLD  /^Received:.*\[127\.\0\.0\.1/    IGNORE      //隐藏内部主机 IP 地址信息  /^Received:.*\[192.168\.0\.[0­255]        IGNORE  (14)使用以下命令生成 header_check 查询表:  postmap /etc/postfix/header_checks  (15)使用以下命令生成一些空的查询表,以后可以根据需要增加内容:  touch /etc/postfix/SenderAccess  portmap /etc/postfix/SenderAccess  touch /etc/postfix/HeloAccess  portmap /etc/postfix/HeloAccess  touch /etc/postfix/ClientAccess  portmap /etc/postfix/ClientAccess  (16)使用以下命令进行 openwebmail 初始化:  /var/www/cgi­bin/openwebmail/openwebmail­tool.pl ­­init  (17)修改 vim /var/www/cgi­bin/openwebmail/etc/openwebmail.conf 文件:  domainnames yingdong.com  smtpserver 192.168.11.3  authpop3_server 192.168.11.3  default_iconset Cool3D.Chinese.Simplified  enable_webdisk yes  (18)修改  /etc/dovecot/dovecot.conf 文件:  protocols = imap imaps pop3 pop3s  //启用指定的协议  ssl_cert=/etc/postfix/.certs/dovecot.pem  ssl_key_file =/etc/postfix/.certs/dovecot.pem  (19)修改/etc/httpd/conf/httpd.conf 文件:  ScriptAlias /webmail "var/www/cgi­bin/openwebmail/openwebmail.pl"  //使用别名访问 (20)修改 vim /etc/logrotate.conf 文件:  /var/log/openwebmail.log

(41)

{  weekly  //指定循环周期为一周  rotate 5  //指定日志文件删除之前转存 5 天  missingok  //指定如果找不到 openwebmail.log 就忽略这个转存配置  nocompress  //指定不对日志进行压缩  notifempty  //指定如果日志文件为空,则不转存  create 0660 root mail  //指定转存时创建文件的权限所有者及拥有组  }  (21)使用以下命令启动相关服务,并设置为下次开机启动:  service sendmail stop  service dovecot start  service httpd start  service mysqld start  service postfix start  service saslauthd start  chkconfig sendmail off  chkconfig postfix on  chkconfig dovecot on  chkconfig httpd on  chkconfig mysqld on  chkconfig named on  chkconfig saslauthd on  (22)测试。 已发送邮件,如图 3­55 所示。 图 3­55  已发送邮件

(42)

收到邮件,如图 3­56 所示。 图 3­56  接收邮件  3.6.4  安装配置 Web 服务器  1.安装配置 Apache 服务器 (1)下载 httpd­2.2.8.tar.gz 压缩安装包(www.apache.org/dyn)。 (2)解压安装包到 opt 目录下:  tar ­zxvf httpd­2.2.8.tar.gz­C/opt  (3)采用编译源码安装中的模块的动态安装的方法来安装./configure:  ­­prefix=/usr/local/apache2 ­­sysconfdir=/etc/apache2 ­­  enable­modules  —enable­ssl  //enable­modules  写入内核

(4)启动源码安装的 Apache 服务器:  /usr/local/apache2/bin/apachectl start&  service httpd stop //停掉 rpm 包装的 httpd  (5)查看服务器是否启动成功:  netstat ­antup|grep 80  (6)打开 Firefox 浏览器,输入本机 IP 地址 http://192.168.11.2,如图 3­57 所示。 (7)设置 Apache 服务器开机自动启动:  cd /etc/init.d  cp /usr/local/apache2/bin/apachectl apache    //复制 Apache 到当前目录  chmod +x apache //修改 apache 的执行权限  vi apache

(43)

图 3­57  测试 Apache 服务器 将下面的内容添加到第一行下面(Apache 服务的优化) :  #chkconfig:2345 10 90  //在 2345 运行级别开启 90 优先级,关闭 10 优先级  #description:Activates/Deactivates Apache Web Server  chkconfig ­­add apache  chkconfig­­level 345 apache on  //设置 apache 在 345 级别启动  service apache restart  2.安装 SSL 协议 (1)下载 ssl.ca­0.1.tar.gz 压缩安装包(www.modssl.org) 。 (2)解压安装包到 local 目录下:  tar ­zxvf ssl.ca­0.1.tar.gz­C/usr/local  (3)创建 SSL 根认证密钥:  ./new­root­ca.sh  (4)创建服务器认证密钥:  ./new­server­cert.sh yingdong  (5)签署服务器认证密钥:  ./sign­server­cert.sh yingdong  l 配置 apache 服务器,打开 SSL 认证功能。 l 修改/etc/apache2/httpd.conf 配置,找到 400。 l 将 Include/etc/apache2/extra/httpd­ssl.conf 指令前的#去掉。 l 修改/etc/apache2/extra/httpd­ssl.conf 配置文件,将 server.crt 和 server.key 的名字改为  yingdong.crt(第 99 行)、yingdong.key(第 108) ,并将前面的#去掉。 l 将刚刚产生的服务器的密钥对复制到/etc/apache2 目录下:  cp yingdong.crt yingdong.key /etc/apache2

(44)

(6)重启 Apache 服务器:  service apache restart  (7)使用  HTTPS  协议访问  Apache  服务器,打开  Firefox  浏览器,在地址栏中输入  https://192.168.11.2,如图 3­58 所示。 图 3­58  测试安全连接(一) 单击“或者,您可以添加一个例外…”超链接,输入安全连接地址,步骤如图 3­59 至图  3­61 所示。 图 3­59  测试安全连接(二)

(45)

图 3­60  配置安全连接(一)

(46)

测试安全连接,如图 3­62 所示。

图 3­62  测试安全连接(三) 

3.安装配置 MySQL 服务器

(1)下载 mysql­6.0.4­alpha.tar.gz 并解压源码文件: 

tar ­zfx mysql­6.0.4­alpha.tar.gz ­C /usr/local  //把 mysql 包解压到/usr/local 目录下  cd /usr/local  //进入/usr/local 目录 

ls  //查看解压出来的 MySQL 包

(2)配置 MySQL 源码安装文件,设置 MySQL 安装到/usr/local/mysql 目录,配置文件目 录为/etc/目录:  cd mysql­6.0.4­alpha  //进入源码文件目录  ./configure ­­prefix=/usr/local/mysql ­­sysconfdir=/etc/  //设置安装的目录和配置文件目录 (3)编译 MySQL 源码:  make  //编译过程 (4)安装 MySQL 服务器:  make install  //安装过程 (5)创建 MySQL 用户,并停止 rpm 包安装的 MySQL 服务器:  service mysqld stop  chkconfig mysqld off  //停止 mysql 服务器 

(47)

(6)设置 MySQL 权限,初始化 MySQL 数据库: 

chown ­R mysql.mysql/usr/local/mysql  //改变/usr/local/MySQL 的拥有者为 mysql.mysql  su –mysql  //登入 MySQL 用户  sh bin/mysql_install_db  (7)启动 MySQL 数据库:  /usr/local/mysql/binmysqld_safe &  (8)查看 MySQL 数据库是否启动成功,显示端口为 3306 时表示启动成功:  netstat ­antup|grep 3306  (9)测试 MySQL 数据库:  mysqladmin ­u root password 'yingdong' //更改 MySQL 管理员密码  su ­mysql  //切换到 MySQL 用户  mysql ­u root ­p  //登入到 MySQL 数据库  Enter password:  //输入刚刚更改的密码,登入 MySQL 数据库  mysql>show databases  //显示 MySQL 数据库信息  mysql>\s  //显示 MySQL 数据库状态信息  mysql>\q  //退出  Exit  //退回到 root 用户模式 (10)设置 MySQL 开机自动运行:  cd /etc/init.d/  cp /usr/local/mysql/share/mysql/mysql.server mysql  chmod +x mysql  //给 MySQL 用户加入可执行权限  chkconfig ­­add mysql  //检查 MySQL 服务 

chkconfig ­­level 345 mysql on  //设置在 345 级别启动 MySQL  service mysql restart 

4.安装 PHP 

tar ­zxvf php­5.3.3.tar.gz ­C /opt/  //解压源码文件到/opt  cd /opt/php­5.3.3/  //跳至安装目录  ./configure ­­prefix=/usr/local/php ­­with­mysql=/usr/local/mysql ­­with­apxs2=/usr/local/apache2/bin/apxs  //配置源码  make;make install  //编译安装  cp php.ini­development /usr/local/php/php.ini  //复制配置文件到相应目录  vim /etc/apache2/httpd.conf  //修改 httpd.conf 文件,添加下列 3 行  AddType application/x­httpd­php .php  AddType application/x­httpd­source .phps  DirectoryIndex index.php  echo "<? phpinfo() ?>" >/usr/local/apache2/htdocs/index.php  //测试  /usr/local/apache2/bin/apachectl restart  //重启 apache 服务 测试 PHP 结果如图 3­63 所示。

(48)

图 3­63  测试 PHP 结果  3.6.5  安装配置 CRM 服务器 本项目安装的 CRM 版本为 C3CRM 客户关系管理系统。 (1)将软件包解压至/var/www/html/目录,改名为 c3crm。 (2)用命令 chmod ­R 777 /var/www/html/c3crm 更改相应权限。 (3)用命令 vim  /etc/php.ini 修改 314 行 memory_limit  =  16M(16M 改为 20M) ,设置相 关内存。 (4)用命令 vim /etc/httpd/conf/httpd.conf 修改主页路径。391 行改为 DirectoryIndex c3crm  index.html index.html.var。 (5)打开浏览器,在其中输入地址 crm.yingdong.com,单击“开始”按钮,如图 3­64 所示。 图 3­64  安装 C3CRM(一)

(49)

选中“我接受”复选框,然后单击“下一步”按钮继续,如图 3­65 所示。

图 3­65  安装 C3CRM(二)

检测通过后单击“下一步”按钮继续,如图 3­66 所示。

图 3­66  安装 C3CRM(三)

(50)

图 3­67  安装 C3CRM(四)

更改管理员密码,这里为:654321,如图 3­68 所示。

图 3­68  安装 C3CRM(五)

(51)

图 3­69  安装 C3CRM(六)

开始安装,如图 3­70 所示。

图 3­70  安装 C3CRM(七)

(52)

图 3­71  运行 C3CRM 

管理员登录,如图 3­72 所示。

(53)

管理员创建用户,如图 3­73 所示。

图 3­73  管理员创建用户

普通用户登录,如图 3­74 所示。

(54)

创建联系人,如图 3­75 所示。 图 3­75  创建联系人 至此,项目实施及测试全部完成。 

3.7  思考与总结

该项目使用硬件包括机架式服务器联想 R520 和 PC 等,主要使用虚拟化软件 VMware 实 现,软件包括 VMware Workstation 7、RedHat AS5、CRM 系统、PHP、MySQL、Apache、邮 件系统(Postfix、Webmail)、NAS  存储软件等;涉及知识点包括  Linux  服务器及软件、数据 备份、软件 RAID5 等。由于本教材的主题和篇幅关系,项目实施过程主要是服务器及存储部 分的实现,并未包括项目的网络部分,如 VLAN、防火墙配置等,如有硬件条件可综合实现。 请结合本项目,思考以下问题:  1.为了拓展业务,增加用户黏度,提高企业知名度,世纪公司准备增加 SNS 系统、论坛 系统及后台管理系统等,拟使用康盛创想公司的 DISUUZ、UCENTER 及 UCETER  HOME 等 一系列开源软件产品,请在现有服务器上规划并实现该项目,确保各系统稳定运行。  2.由于安装的康盛创想开源系统较多,需要申请可单独访问每个系统的域名。但服务器 和 IP 资源有限,多种系统需要运行在同一台一个 IP 的服务器上,请用虚拟主机实现不同域名 可访问同一台服务器上的不同系统。  3.如果项目中的 Windows  2003 服务器用于保存一些员工数据,请用 Samba 服务器实现 与其他 Linux 服务器之间的数据安全共享。

參考文獻

相關文件

试题管理界面左侧,按照试卷结构罗列出了 HSK(一级)至 HSK(六

意大利作曲家普契尼创作的歌剧《图兰朵》中,运用了我国

[r]

,在需求分析过程中应该建立起软件系统的 行为模型。状态转换图 ( 简称为状态图 ) 通

一般说来, 对于一个区间上单调的函数的 图形都存在一个需要判别弧段位于相应的弦线

3.正弦函数y=Asin(ωx+φ)的图象之间的变换关系是学生最熟悉的一种伸缩变换.教 材从学生最熟悉的这一内容入手 ,分别比较了函数y=sin2x 和y=sinx 的图象之间的关

如图 2.2-1 所示,将一把钢尺紧 按在桌面上,一端伸出桌边。拨动钢 尺,听它振动发出的声音,同时注意

图1-46  果实和种子的形成 胚珠 → 种子 子房 → 果实 子房壁 →