drupal study by fushunzh

VIEWS: 101 PAGES: 15

									                           第 1 章 引言                    ·216·




                          第1章 引言



  LAMP+Drupal 在线培训 学习资料



  学员 魏剑 专用版



  学员服务 QQ: 297284436




   在进入 Drupal 世界之前,首先要了解 Drupal 的本质——内容管理系统。本章将引领读者了解目前
CMS 的定义、背景和发展。只有对 Drupal 有了充分的了解,才能决定是否使用并很好的使用 Drupal。
本章将会解答下列问题:
    什么是内容管理系统(CMS)?什么是 WCM?如何根据业务需求,判断要开发的系统是否属
     于或需要 WCM?
    对于开源的 WCM,有哪些选择?
    如果要自己开发一个 WCM,该如何做?成本如何?
    与其他 WCM 相比,Drupal 有哪些过人之处?



                   1.1 内容管理系统(CMS)

1.1.1 什么是 CMS

  CMS 是内容管理系统(Content Management System)的英文缩写,它是一个能够提供创建、修改、
管理和发布各种内容的系统。CMS 用来进行网站内容的排序、管理、版本控制以及发布控制——像各
种新闻公告、使用手册、技术文档、产品介绍以及小册子等。这些内容通常包括文本、图像或动画、视
频、音频以及网页内容。
  一个 CMS 通常具有下列功能:
   基于角色的权限管理:可以安排指定类别的操作者负责不同类别内容的管理。角色是指一个组
    织或任务中的工作或位置,它代表了一种资格、权利和责任。
   内容管理的工作流:可以按照某种工作流程来进行内容管理的互助合作。例如一个操作者发布
                             第 1 章 引言                     ·217·


     了一篇文章,那么接下来就需要审核者审核新闻,以决定是否发布。
   强大的内容分类机制:站点的内容有很多种,如文本、音频、视频等。CMS 会将这些内容以一
     定的规则进行分类,以方便管理。同时,对于相同格式的内容进行分类。
   可以对内容进行版本控制:系统可以记录某个内容的很多修订版,由管理员决定哪个是最终的
     版本。
   内容与表现层相分离:     CMS 通常有“主题模板”  “主题模板”
                                机制,     是由像 HTML、CSS、JavaScript
     这样用于表示站点风格的文件所组成。内容发布者只需填写内容的核心文字以及所对应的多媒
     体内容,而无需关心最终显示此内容的页面的编码。同时,“主题模板”是符合一定规则的,
     开发者需要按照这种规则开发新的主题模板。
  图 1.1 展示了 CMS 的构架图。由图中可以看出,位于中心的是保存各种内容的存储服务器;由指
定的内容录入和管理人员向内容数据库中输入内容。同时,用户可以通过某种方式(如浏览器或客户端
等)浏览和查询内容,并进行反馈(如评论)等。


                                    浏览
                          录入内容




                                         查询

                            内容存储服务器


                           审核内容
                                   反馈



                         图 1.1   CMS 总体构架

  内容管理系统的定义是根据用户角色的不同而不同。从使用者的观点看,CMS 是由位于网站前端
供访问者浏览并取得信息的客户端,以及在后台供管理者编辑更新前端网页内容的办公系统所组成的。
从开发者的观点看,CMS 是一个具有普通软件体系结构的软件,它的特点是内容含量大,且具有各种
格式(如文字、图像以及声音等)。

1.1.2 什么是 WCM(Web Content Management)

  由于互联网技术的飞速发展,大量的网站也涌现出来。从公司企业到政府机构,都有展示自己产品
或信息的站点。而且还有更多的基于 B2B 或 B2C 等服务的商业站点出现。网站的主体是内容。也就是
说,每个网站是由无数种不同的“内容”所构成的。这些内容包括文字、图像、视频以及音频等。随着
网站规模的逐渐扩大,内容也在不断的增加。由于有些网站原来的架构不是很合理,没有充分考虑到内
容管理方面的需求,从而导致了当网站内容急剧膨胀时,需要花费大量的人力在新的内容的展示上。有
时候甚至需要重新开发整个网站。网站的开发者们也会经常听到一些客户对现有网站的抱怨:
   页面制作混乱,网站风格不统一,大量信息堆积,发布显得异常沉重;
   内容繁杂,归类困难,半人工管理效率低下,手工链接视频、音频信息经常无法得到很好的管
    理;
   使用难度较高,许多工作需要技术人员的配合才能完成;
·218·                                  第 1 章 引言


    角色分工不明确,权限管理比较薄弱;
    升级改版工作量大,系统扩展能力差,集成其他应用时更是没有灵活性。
   为了解决上述问题,网站的开发者们开始思考:怎样很好的构建一个网站才能使其能避免以上这些
问题呢?
   结合 CMS 的定义可以看出,构建一个用于管理网站内容的管理系统是这些问题的根本解决方法。
这个以管理网站内容(如页面、图像、视频、音频以及其他网站相关文件)为主要任务的内容管理系统
就称为网站内容管理系统——WCM(Web Content Management)。现今,WCM 已越来越多的被用于解
决网站建设与内容管理中的常见问题。如果读者感觉到您目前要开发的网站境况与 WCM 所能达到的目
标相似,那么也就意味着您需要一个 WCM 了。
   目前, 主流的开发平台上均有相应的 CMS 产品。            例如 ASP.NET 有 CommunityServer;PHP 有 Drupal
和 Mambo;Java 有 OpenCMS 和 Apache Lenya 等。后面的小节会对部分主流的 WCM 作出对比。

1.1.4 WCM 的主要功能

  上面给了 WCM 的定义以及其所解决的问题。那么 WCM 具有哪些功能模块呢?图 1.2 就展现了一
个基本的 WCM 所应具有的功能。




                               图 1.2   WCM 的主要功能

   下面是每个功能的详细内容:
    内容发布系统:这是 WCM 的核心功能,即对网站内容的管理。可以发布、修改、查找和删除
     页面、新闻公告以及图像等。同时,还需要有内容的分类功能,以便更好的对内容进行管理。
     内容的版本控制也包含在其中。对于内容的录入,WCM 一定要提供一个所见即所得的编辑器,
     可以让内容录入者能够方便的录入内容。如果输入的内容中包含 JavaScript、HTML 甚至 PHP
     代码等,也需要编辑器作出良好的支持。
    Portal 系统:简单的讲,Portal 系统在 WCM 中的主要功能是使管理员或用户可按其指定的方式
     将网站内容输出成页面(如首页、专题页、详细信息页等),并能够设定页面的主题风格。通
     常每个页面是由很多个区块(或称为 Portalet)所组成的,如图 1.3 所示。每个页面上显示哪些
     区块、每个区块在什么位置、每个页面采用哪种风格和样式,都是可定制的。
                           第 1 章 引言                    ·219·




                       图 1.3 Portal 页面的构造

   权限管理:权限管理用于对不同的网站使用者进行角色区分。WCM 可以指定哪些人有权限录
     入内容,以及哪些人有权限访问内容等。基于角色的访问控制(Role Based Access Control)是
     目前比较流行的权限管理模式。角色指的是可以执行某些权限的一类操作者共有的特点,一个
     角色可以由一个或多个管理员来承担。按角色划分管理员,可以使系统更安全,更便于管理。
   用户管理:如果一个站点可接受用户的注册,则需要用户管理的功能。同时,网站的管理员也
     是一种用户。
   数据管理:包括对 WCM 数据库的备份、导入和导出等功能。
   系统管理:还有一些其他方面需要进行优化和设置,同时还需要提供统计数据的查询功能。例
     如站点的基本信息(如站点名称、公告栏信息、版权信息等)的设置;功能模块(或子系统)
     的安装、开启与关闭;主题模板的安装、开启与关闭,等等。站点管理员还需要查看最近的访
     问记录。
  可以看出,一个完整的 WCM 开发,要做的工作还是比较多的。所以在决定要开发 WCM 时一定要
慎重,建议先在市场中搜索是否有成型的 CMS(免费的或付费的)可以“拿来”使用。而且现在大部
分的 WCM 都支持增量开发,即可以根据用户自己的业务需求扩展其功能。
  当前 WCM 有很多种,有商业的、开源的或免费的。下一节将重点介绍开源的 WCM 解决方案。它
们意味着免费和灵活,也意味着风险。



                 1.2 开源的 WCM 解决方案

  由于 WCM 的飞速发展,目前业界已经有很多比较成熟的 WCM 系统。从简单的博客引擎系统(只
支持有限的内容发布功能,如 WordPress)到完整的内容管理系统框架(如 Mambo、Joomla),再到框
架级的 WCM(不仅具有 WCM 的功能,还具有很强大的扩展支持功能)。之所以选择开源的解决方案,
其主要原因是它具有开放和免费的特性。能查看 WCM 的源代码,更容易对其进行各方面的评估,并进
·220·                           第 1 章 引言


行增量开发。                  而
       由于本书的重点是 Drupal, Drupal 又是使用 PHP 开发的,因此本节将主要介绍几个 PHP
的开源 WCM 产品,它们是 Drupal、Mambo 和 Typo3。通过每个产品的详细介绍,读者可以了解到它们
各自的优缺点以进行比较。

1.2.1 Drupal

    Drupal 是本书的主角,当然要第一个介绍。访问 http://www.drupal.org 即可进入其官方网站。如图
1.4 所示为 Drupa 官方网站的首页。同时,这个网站本身就是用 Drupal 进行架构的。




                        图 1.4   Drupal 官方网站首页

   Drupal 的 Logo 是一个可爱的,有点俏皮又有点神秘感的蓝色水滴,如图 1.5 所示。




                          图 1.5   Drupal 的 Logo

   那么 Drupal 究竟是什么呢?下面是 Drupal 官方网站给出的定义:“Drupal 软件允许个人或用户社
区轻松地发布、管理和组织 Web 站点上的各种内容。”
   Drupal 是一个免费的、开源的、具有模块化框架使用 PHP 开发的网站内容管理系统。像其他现代
的 WCM 一样,Drupal 允许网站管理员创建和组织网站内容、定制网站的表现形式、自动化管理工作以
及管理站点的用户。
   Drupal 包括强大的内容管理系统、博客系统、论坛、协作型编写环境、图片库、文件上传和下载等
                                第 1 章 引言                           ·221·


功能。它采用 GPL 许可协议的开放源码软件。GPL 协议意味着任何人都可以复制、分发及修改源代码。
同时,Drupal 具有丰富的文档支持和强大的专业化社区。
     Drupal 通常被认为是一种“网络应用程序框架(Web Application Framework)”,因为它具有很好
的可扩展性。它不仅具有基本的内容管理系统功能,还可以使用模块扩展其功能,使其能够提供更多的
服务。无论使用者是否精通 PHP 或相关的编程技术,都能很好的使用 Drupal。当然,更高的编程技巧
意味着能更好的使用 Drpual。因为 Drupal 在开发方面是占有很大的优势。换句话说,它更受开发者的喜
爱。数以万计的个人或组织已经使用 Drupal 建立了不同类型的 Web 站点,包括:
      社区门户和讨论站点;
      公司、政府、机构及内部网门户;
      个人网站;
      电子商务网站;
      技术支持类网站。
                      可运行在 Windows、
     Drupal 是用 PHP 编写的,                            、
                                          (苹果操作系统)Linux、
                                   Mac OS X                     OpenBSD、
                                                         FreeBSD、
Solaris 和其他任何支持 Apache(1.3 版本以上)、IIS(5.0 版本以上)和 PHP 解释的服务器上。它支持
MySQL 和 PostgreSQL 数据库,如果安装在 Unix/Linux 服务器上,就构成了非常安全、高效且可靠的
Web 应用服务器架构。无论从成本上、功能上还是安全性上讲,这都是一个很不错的选择。
     Drupal 的最大特点是其具有可扩展性。在 Drupal 的官方网站上,有数以千计的模块供使用者下载。
这些模块涵盖了应用中的各个方面,如内容处理、电子商务、主题展现等,而且还有优化性能的模块。
FCKEditor 模块可以将著名的 FCKEditor(一个强大的网页文本编辑器)     作为 Drupal 的内容编辑器;    Image
模块允许用户上传图像至站点,并进行管理;还有一个叫 Thorttle 的核心模块,它能够对站点中的某些
模块进行负载控制。当网站负载较大时,可以动态的关闭一些模块(例如显示在线用户区块等)以避免
这些模块的功能在高流量期间造成网站过载的问题。              本书将在后面的章节中详细介绍一些 Drupal 的核心
模块,以使读者能很好的使用它们。

1.2.2 Mambo

   Mambo 是比较优秀的开放源码内容管理系统之一。它便于安装和维护,多半的操作均有向导支持,
允许用户安装整个系统而不需要掌握高级技术知识。安装后的系统包含许多可供选择的主题模板和功
能。而且,用户不必掌握 HTML、XML 或 DHTML,也能够添加、编辑和操作内容——只需使用一个
编辑器输入内容并发布。它是用 PHP 编写的。至 2006 年初为止,Mambo 已经有 5 年历史了。图 1.6 为
Mambo 中国的首页。
·222·                    第 1 章 引言




                         图   1.6 Mambo

  目前,国内有很多站点都在使用 Mambo,在国内它似乎要比 Drupal 更为流行。但是,Mambo 现在
又衍生出了另一个版——Joomla。Joomla 是原 Mambo 团队中的一部分人脱离 Mambo,而单独开发的一
个新的 WCM。从本质上讲,它就是 Mambo 的新版本。不过它的代码质量要比 Mambo 好,因为它是新
开发的产品,使用了较新的技术。如图 1.7 所示:




                         图 1.7   Joomla

  但总的来说,Joomla 的出现使 Mambo 的开发路径有点儿混乱,因此使用者对它们的未来没有太大
的把握。Mambo 的更新速度比较缓慢,而且 Joomla 的中文支持也非常弱。还有一点是 Joomla/Mambo
的主题模板不是纯 CSS 的,有一些自创的标记。但这些标记的可靠性还有待验证。

1.2.3 Typo3

   Typo3 是一种在 GPL 下发布的企业级内容管理系统。全世界有很多网站都使用它作为 WCM。它历
史比较悠久,所以支持的语言也比较多。许多大学、公司、政府机构和非盈利组织也在使用它。图 1.8
为 Typo3 的首页截图。
                        第 1 章 引言                   ·223·




                        图 1.8   Typo3

  Typo3 是一个比较大型的系统。尽管它有一个很大的社区,也有大量用户采用它,但它的学习过程
却很长。Typo3 的大部分核心模块和第三方模块使用的是比较早的技术,结构也不是很好,例如大量的
使用了表格作为页面布局的实现方法,没有很好的使用 CSS。因此它的模板系统与 Drupal 和 Mambo 相
比是较为陈旧和复杂的。
  同时,它的管理界面与 Drupal 和 Mambo 相比也不是很清新和具有现代感。这点也很重要,因为管
理界面的易用性也是判断一个 CMS 优劣的重要因素。

1.2.4 WordPress

  WordPress 是一款非常优秀的博客平台,它专注于博客内容的管理和优秀的界面风格(如图 1.9 所
示)。它使用 PHP 开发,并使用 MySQL 作为数据库系统。同时,它的页面都是严格符合业界标准的,
这也是它的产品特性之一。开发者为 WordPress 开发了很多绚丽多彩的主题,使用者可以方便的下载喜
欢的主题并使用。WordPress 历史比较悠久,它也属于 WCM 的一种,只不过是以博客为主,可以说是
顶级的专业博客系统。它支持对文章定制标签、分类、文章评论等社区交互的功能。而且除博客文章外,
也可以创建一些简单的页面。而且 WordPress 也支持第三方插件,开发者可以通过插件来扩展其功能。
·224·                    第 1 章 引言




                       图 1.9   WordPress

  如果想做一个以博客为主的平台,WordPress 的确是一个很不错的选择。不过这也正是它的局限性。
它小巧简洁,但想在其基础上做企业级的开发,就不太合适了。

1.2.4 比较

  前面列举了几种开源的使用 PHP 开发的 WCM,    下面从以下几方面对这几个 WCM 作一下简单的比
较:
    安装难易度:包括程序的安装和数据库的安装。即从下载到正式使用期间的过程的开销。
    学习难易度: 包括系统的易用性、     管理界面的可操作性以及其接口或扩展机制的学习难易度等。
    会话管理:会话管理指的是服务器对当前用户的各种状态的控制与存储。除了 PHP 原有的会话
     管理机制外,WCM 一般会扩展会话管理机制,以实现更强大的会话管理机制。例如 Drupal 实
     现了基于数据库的会话管理机制。
    用户管理:是否支持多用户注册以及对用户的权限管理等。
    可扩展性:如果系统允许并很好的支持开发者开发自己所需的功能,那么这个系统的可扩展性
     就比较强。开发者自定义的模块或组件可以轻松的发布并为他人所用,这也是可扩展性的另一
     个重要体现。
    可伸缩性(Scalability):系统的可伸缩性包括纵向和横向两方面。纵向可伸缩性指在同一个逻
     辑单元内增加资源来提高处理能力。例如通过硬件设备的增加(如升级为更强的 CPU 或扩大
     内存或存储空间容量)来增强其性能,支持更多的用户或获得更快的运行速度等。横向可伸缩
     性指系统能够通过运行更多的程序实例或者采用分布式处理来增强处理能力。数据库集群、分
     布式文件系统、负载平衡都是提高系统横向的可伸缩性。
    主题模板支持:主题模板的易开发程度以及现有的主题模板的数量。
                                  第 1 章 引言                            ·225·


    XHTML/CSS:对标准的支持程度影响着主题模板的可编程性。
   表 1.1 展示了上面提到的几个开源 CMS 系统特性的对比,5 分为最高分。
                            表 1.1 几个 WCM 的比较


                 Drupal          Mambo/Joomla       Typo3       WordPress
安装难易度        3               5                  1           5
学习难易度        3               3                  1           1
会话管理         5               3                  1           1
用户管理         5               5                  5           1
可扩展性         5               3                  5           3
可伸缩性         5               5                  5           1
主题模板支持       5               3                  3           4
XHTML/CSS    5               5                  1           5
  经过上面的介绍和列表以及与其他 CMS 的对比,可以看出 Drupal 的整体优势比较明显。抛开广告
性的溢美之词,笔者认为选择 Drupal 的原因有以下几点:
   免费:无须支付任何费用即可下载、安装、再开发以及部署。
   更新较快:有很多著名的 CMS,由于其更新速度慢,很长时间没有出新版本,致使大量的用户
    流失。而 Drupal 的更新速度非常快,推出的升级和补丁也比较及时。而且每年都有 Drupal 会议
    举办,让使用者对 Drupal 的未来很有信心。
   专业:强大的 CMS 功能,使用了当今最流行的各种网站技术。Drupal 比其他的 WCM 更适合
    于 PHP 的专家,因为它是一个框架级的 WCM,有着丰富的 API,及完善的代码标准和风格规
    范。
   丰富的第三方模块:     Drupal 的官方网站上可以下载各种第三方模块以扩展其功能,如电子商务、
    内容处理、主题样式等各方面。
   扩展性强:模块式架构和主题模板引擎,使功能和表现样式均可以无限扩展。
  下一章节将会详细介绍 Drupal 的主要特性。



                          1.3 Drupal 的主要特性

   本节将分类详细介绍 Drupal 的功能和特性,以使读者深入了解 Drupal 的各方面。

1.3.1 用户管理

   Drupal 是多用户系统,它支持多用户注册并具有完善的用户管理功能。由于采用了基于角色的权限
管理,Drupal 将不同的用户划分为不同的角色,限制其内容访问及修改等操作。同时,Drupal 不仅能管
理本地的用户,还可以使用外部的认证源(诸如 Jabber、Blogger 或其他的 Drupal 站点)进行分布式认
证。通俗的讲,只要符合 Drupal 的通信协议,在其他服务器上的用户也能像 Drupal 本站注册的用户一
样,登录并访问 Drupal 站点。同时,如果想在企业内部网络使用,Drupal 还可以与 LDAP 服务器整合。
   LDAP 是经量级目录访问协议(Light Directory Access Protocol)英文的缩写。在企业范围内实现
LDAP,可以让其运行在几乎所有计算机平台上的所有应用程序从 LDAP 目录中获取信息。LDAP 目录
中可以存储各种类型的数据:电子邮件、各种公司数据、公用密匙、联系人列表等。通过把 LDAP 目录
·226·                             第 1 章 引言


作为系统集成中的一个重要环节,可以简化员工在企业内部查询信息的步骤。
  Drupal 有一个“LDAP 集成”项目,可以从 http://drupal.org/project/ldap_integration 链接中进入其首
页。这个项目主要包括三个子项目(即三个模块),它们分别是:
   ldapauth:允许用户通过多 LDAP 或 AD 服务器认证;
   ldapgroups:可以将 LDAP 组转换成用户角色;
   ldapdata:使 Drupal 可以通过 LDAP 读或写数据;
  这几个模块实现了 Drupal 与 LDAP 集成的主要功能。此外,Drupal 还有一个名为“Drupal”的核心
可选模块,是执行分布式认证功能的模块,本书后面的章节将会进行具体的介绍。

1.3.2 内容管理

  内容是网站的基础。Drupal 引入了“节点(Node)”概念,可以将“节点”理解为 Drupal 站点的
基本元素。即 Drupal 中的大部分内容均由许多节点组成。每个节点包括标题、内容以及其他一些属性。
管理员可以通过设置不同的节点类型,将这些节点按结构的不同进行分类(如页面、博客文章、论坛帖
子等)或按节点内容的不同而进行分类(如国内新闻、国外新闻等)。关于节点和其他 Drupal 的主要概
念将在后面的章节里进行详细介绍。
  下面是一些 Drupal 在内容管理方面的主要特性:
   创建页面(Pages):这是 Drupal 的基本功能,管理员可以轻松的创建出各种页面,并设定其
    在菜单中的链接和页面导航。
   创建投票(Polls):投票模块能够让用户创建一个投票,并可在任意的页面显示。同时,管理
    员或用户还可以看到此内容的投票统计。投票的显示样式也是可以定制的。
   主题模板(Templating):Drupal 的主题系统将内容和显示方式分离出来,这样可以更好地控
    制网站的外观风格。主题模板是基于标准的 HTML 和 PHP 代码构建的,这意味着无需学习另
    外的专有模板语言。
   线性评论(Threaded comments):Drupal 提供了一个强大的线性评论模块,使用户可以对内容
    发表自己的评论。评论是分等级且有层次的,就像新闻组或论坛那样。
   版本控制(Version control):Drupal 的版本控制系统能跟踪内容更新的详细情况,包括更新的
    人、更改的内容、更改日期及时间等。版本控制特性还提供了可选的评论记录功能,同时允许
    将内容恢复到早期的版本。
   协同写作(Collaborative book):协同写作特性让多个用户共同完成一个内容集合的创作,例
    如帮助文档或一本书。

1.3.3 博客

  博客是当前热门互联网概念,           当然,  Drupal 也具有这样的功能。     而且它还是一个多用户的博客系统,
每个注册用户均有自己的博客空间。下面是 Drupal 关于博客的一些相关特性:
   支持 BloggerAPI(Blogger API support):BloggerAPI 允许用户使用许多不同的工具来更新自己
    的博客。包括非基于网页浏览器的本地桌面程序——如 Zoundry 等,它们可以提供更丰富强大
    的本地编辑环境。当用户连接上互联网后,再发布至站点中。
   订阅(Content syndication):Drupal 可以将站点的内容作为 RDF/RSS 格式输出。这样任何人都
    可以在它们的桌面上(如 Outlook)或其他网站的应用程序上(如 Google Reader)方便地浏览
                                  第 1 章 引言                             ·227·


     站点的更新内容。
    新闻聚合器(News aggregator):Drupal 内建了功能强大的新闻聚合器,这意味着 Drupal 不仅
     能对外发布本站的内容,也可以读取其他网站的新闻咨询。新闻聚合器将文章缓存在本地的数
     据库中,同时管理员可以设定这个缓存的时间(即内容的过期时间)。
    永久链接(Perma links):Drupal 创建的所有内容都有一个永久链接,用户可以通过它直接访
     问而不必担心因动态链接损坏而无法访问内容。

1.3.4 多平台支持

  当前, 服务器的硬件设施和操作系统有很多种。           如果使用 Drupal 需要哪种平台的支持呢?读者也肯
定会关心现有的服务器能否架设 Drupal。令人高兴的是,由于 Drupal 是采用 PHP 开发的,所以只要是
能运行 PHP 的地方,就一定可以运行 Drupal。下面是一些 Drupal 与平台相关的特性:
   支持 Apache/IIS 两种主要的网站服务程序,     同时支持 Unix/Linux/BSD/Solaris/Windows/MacOSX
     多种操作系统。简单的讲,PHP 能运行的地方,就可以有 Drupal。
   数据库独立(Databaseindependence):很多用户使用 MySQL 作为 Drupal 运行的数据库,但
     MySQL 可能不是适合所有人的解决方案。Drupal 还支持 PostgreSQL。PostgreSQL 是另一款非
     常著名的跨平台开源数据库。Drupal 目前不直接支持其他的数据库。如果想使用,则需要编写
     一个自定义的数据库架构。
   多语言(Multi-language)支持:Drupal 是面向全球的 WCM。它提供了完整的多语言支持机制,
     使不同地区的开发者可以创建多语言的网站、博客、内容管理系统和社区应用。Drupal 的官方
     网站上已经有大量的语言包,可直接导入 Drupal 进行本地化。同时,Drupal 还提供了一个比较
     友好的界面,使用户可以即时修改某个字符串的翻译。

1.3.5 管理分析

  一个站点能够良好的运行,是需要管理员不断的管理和维护的。Drupal 提供了很多站点配置以及与
管理分析相关的功能,使管理员能够轻松的管理站点并监视其运行状态,及时的发现问题并进行危机处
理。下面是 Drupal 站点管理方面的一些特性:
   分析、跟踪和统计(Analysis,Tracking and Statistics):Drupal 可以生成很多站点分析数据。例
    如访问日志、错误信息、流量等信息。
   日志和报告(Logging and Reporting):所有重要的操作和系统事件都会被捕获并记录在一个事
    件日志中,管理员可以随时进行查看。
   基于浏览器管理(Web based administration):Drupal 完全通过浏览器进行管理,这意味着管理
    员可以在任何能够连接上互联网的地方管理站点,而无需任何客户端。

1.3.6 社区特性

  Drupal 包含了一个论坛模块,可用来创建论坛或讨论组之类的社区站点。Drupal 的论坛支持多级子
论坛,也就是说一个论坛下面可以创建多个子论坛。用户可以轻松的发表主题帖以及回帖。管理员也可
以对各个子论坛进行管理。包括了当前流行论坛的基本功能。
  不得不说的是,由于 Drupal 的论坛是一种很简约的论坛,没有一些花哨的如积分等级等功能,属于
·228·                              第 1 章 引言


轻量级的论坛。如果您想构建一个强大的论坛,可以使用 phpBB 或国产的 Discuz!等产品。phpBB 还可
以与 Drupal 相结合使用。

1.3.7 可扩展性

    模块(Modules)机制是 Drupal 最显著的优点。通过各种模块,用户可以轻松扩展 Drupal 以获得更
为丰富的功能。Drupal 本身的各种功能也是由几个核心模块提供的。当需要某种新功能时,可首先去
Druapl 站点搜索已有的模块,看是否有合适的。如果有,则下载并安装即可;如果没有,则可以利用
Drupal 的 API 开发自定义的 Drupal 模块。Drupal 社区已经开发了许多模块,它们能提供诸如内容管理、
分类显示、书签等多种功能。

1.3.8 其他特性

    Drupal 除具有一般的内容管理系统功能外,还具有一些其他的特性:
     简洁友好的网址(Friendly URLs):Drupal 可以让操作者为每个页面自定义一个友好的 URL,
       这在 Drupal 中称为 URL 别名(URL alias)。这个是基于 Apache 的 mod_rewrite 功能,它可以
       以对用户和搜索引擎显得更简洁友好的方式显示 URL。 Drupal 的          如         “关于页面”可以通过“http://
       drupal.org/about”访问,而不需要输入 http://drupal.org/node/12345。
     在线文档帮助(Online help):Drupal 的帮助文档还是非常丰富的。它的官方文档几乎包含了
       Drupal 开发的所有信息。而且,Drupal 的论坛也是非常活跃的,经常有很多技术高手在论坛里
       回答别人的问题。Drupal 目前已有了中文版的官方网站。
     开放源代码(Open source):作为开源项目,Drupal 的源代码通用公共许可证(GPL)提供,
       是自由且公开的。这意味着开发者完全可以按照自己的需求扩展延伸和自由定制 Drupal。
     个性化(Personalization):Drupal 具有强大的主题模板引擎。不论内容还是显示方式都可以通
       过用户自定义的参数来选择实现充分的个性化。
     搜索(Searching):Drupal 里的所有内容都可以被建立索引和搜索。搜索框可以出现在任何一
       个页面上。
    大名鼎鼎的 Bruce Eckel(《Thinking In C++》和《Thinking In Java》的作者)曾建议他的朋友使用
Drupal。他说:  “我的一个朋友 Nancy Nicolaisen 表示她希望搭建一个旅游网站,             我建议她看一下 Drupal。
她听取了我的建议并最终选择了它,只进行了轻微的改动就使她的网站上线了,用她的话来说,这个用
户社区吸引她的地方是它的强大和易用。”听了大师的推荐,是不是也想尝试一下 Drupal 了呢?下一节
将介绍如何获取 Drupal。



                              1.5 获得 Drupal

  Drupal 目前是通过官方网站来发布最新版本的,它的网址是:http://www.drupal.org。就在笔者快要
完成此书时,Drupal 的最新版本-Drupal6 已经正式发布了。不过,最稳定的才是最好的。一个软件的
最新版本,并不代表最适合在生产环境中使用。它的较稳定的版本,或者说使用时间最长、用户群最广
泛的版本,   才是最 “好” 的版本。    目前 Drupal 最稳定的版本应该是 Drupal5.x。本书也主要是对 Drupal5.x
进行的讲解。    不过,                                                待
             Drupal6 与 Drupal5 之间并没有太大的差距,相信读者在掌握 Drupal5 后, Drupal6
                           第 1 章 引言                   ·229·


大器以成,会很容易的迁移过去。下面是 Drupal 的一些版本列表,读者可以有选择的下载。下面为获取
Drupal 的详细流程:
    (1)访问 Drupal 的官方网站。下载任何软件,最好去其官方网站进行下载。因为在其他网站下载
的版本有可能是修改过的,甚至是有病毒或木马的。图 1.10 用圆圈标示了下载的链接。




                     图 1.10 Drupal 首页的下载链接

    (2)进入下载页面。可以看到页面右侧显著位置只有 Drupal 6 版本的下载链接。前面提到了目前
Drupal 的稳定版本为 5.x,因此推荐下载 Drupal 5.x 版本。单击对应的版本号后,即进入下载导航页面,
如图 1.11 所示。




                       图 1.11   下载导航页面

  (3)从下载页面上可以看到从上到下的链接依次为:Drupal 项目、安装配置文件、模块、主题、
主题模板引擎和翻译。单击“Drupal Projects”进入下载页面,如图 1.12 所示。
·230·                           第 1 章 引言




                       图 1.12   Drupal 安装包下载页面

  可以看到 Drupal 目前只提供两个主要版本的下载:6.1 和 5.7。6.1 为最新版,5.7 为上一个最稳定的
版本。单击圆圈标记的下载链接即可开始下载。
  Drupal 安装包是.tar.gz 的压缩文件。下载之后可使用 WinRAR,WinZIP 或 7Zip 等流行的压缩软件
解开。本书将在后面的章节详细介绍如何安装 Drupal。

								
To top