下面是简要介绍。
如果您运营任何一种企业或组织,提供一个 Web 站点都不再是一种奢侈行为。和徽标一样,一个给人深刻印象的 Web 站点现在也是身份、品牌和交流的重要成分。实体店已是明日黄花 — 例如您无法步入 Amazon — 但培养、支持并回报忠实客户依旧重要。一个 Web 站点可吸引客户,而站点特性将影响和保持这些客户。
由于 Web 服务意义重大,无怪许多组织大力投资技术和人员,以创建、运作和维护吸引眼球的 Web 站点。例如,纽约时报耗资巨大开发了新型软件,以提供对其日报内容和大量历史内容存档的在线访问。同样,在美国还几乎没有特意设立的汽车陈列室时,Mini USA 就允许用户通过 Web 从无到有构造汽车了。
虽然很少有出版机构能达到纽约时报的规模,很少有零售商能售出 30,000 美元的商品,但每份期刊或每家店铺都分别与 NYTimes.com 或 MiniUSA.com 有着相同的目标。因此,存在广泛的 Web 站点制作解决方案来满足不同预算。具有规定特性的现成软件是这些解决方案的一个极端;自定义开发是另一个极端;两个极端之间便是各种组合。
有趣的是,有一种开源软件跨越了这整个范围。Drupal 能够不经过定制就直接有效地使用。还可以广泛地修改(毕竟它是开源产品)和使用自定义代码进行改进。而且 Drupal 能够根据组织的要求、技术能力和财务资源,适应于任何变化的情况。
经过过去的 3 年,Drupal 内容管理系统 (CMS) 已确实广为流行。Drupal 可免费部署。此软件易于安装在任何支持 PHP 的平台上。又因为它易于扩展,其可用插件的分类十分广泛,所以 Drupal 能够发展,以适应成长的 Web 站点的要求。
Drupal V5 于 2007 年初发行,Drupal V6 — 最新的重要修订版 — 一年后登场。Drupal V5 受到积极维护,以解决紧急的安全性问题,但大多数新开发的内容,包括基础增强、扩展和主题,都集中在 Drupal V6 中。Drupal V7 的研发也有了初步计划,但要预测其针对 Web 站点制作的可用性或适合性还为时过早。
本文着眼于 Drupal V6 中的改进和新特性。此第 1 部分介绍了 Drupal,说明了软件使用的关键概念,列出了 Drupal V6 中的一些新特性,并演示了如何在 Mac OS X 的初始目录上安装该程序包(在 Windows®、Linux® 和 UNIX® 上的安装相似)。本 “研究 Drupal” 系列文章的后续部分将详细叙述如何使用模块和主题来扩展基本安装,以及如何管理发展中的 Drupal 站点,包括技巧和提示,例如搜索引擎优化和国际化。
Drupal 内部构件快速指南
Drupal 是面向 Web 的 CMS。它的价值体现在事例(story)。Drupal 收集并管理事例和附加信息(例如附图、评论、评级和链接),并以各种格式(例如博客、存档或 RSS feed)来呈现。
与其他 Web 应用程序相似,Drupal 基于 Apache、MySQL、PHP (AMP) 堆栈。Apache 为 Web 服务器,可在客户机系统与自身之间传输请求和回复。MySQL 是事例存储库;这种关系数据库能够快速地输出特定数据。PHP 是用于 Drupal 编码和执行的计算机语言和解释程序。AMP 和 Drupal 相结合,可处理每个事例请求,并利用格式化页面或提要中的准确数据做出响应。
Drupal 核心(core) 提供了基本特性,例如用户管理、会话管理和模板制作。它还提供了 API,以便任意数量的子系统能添加特性,超越核心所提供的特性。每个子系统称为一个模块。
Drupal 使内容与外观分离。换句话说,一个事例通常不会规定它在页面上如何显示。而是由主题 或风格来影响其外观。主题管理是核心的一部分;每个主题都是一个独立插件。
当然,核心也可管理事例或者 Drupal 所称的节点。在大量的值之中,一个节点记录了最少的信息,包括一个 ID、一个标题、状态、一种类型和一个作者。更多广泛或专门的信息通过模块添加到节点中。
节点是 Drupal 的特点。因为它极简,几乎不含语义,所以一个模块能派生新节点类型或扩展一个节点。例如,一个视频模块能基于 vanilla 节点创建一个新节点类型。一个评级模块能扩展任意节点,使之包含等级。一个评论模块能独立或同时地将注释、讨论和辩论自由关联到任意节点。
图 1 截取了 Drupal 的节点模型。基本节点显示在顶部,包含少量核心字段。从基本节点派生出两个新类型的节点:一个用于视频,一个用于播客。其间,一个模块扩展了所有节点,使之包含评级数据,而另一个模块扩展了所有节点使之包含注释。
在 Drupal 6 中可发现广泛的改进。下面是一些最重要的变化:
- 快速安装 — Drupal 一直很易于安装,因为该应用程序是自引导式的。然而,一些重要参数必须独立修改。Drupal V6 安装程序简化了流程。几乎所有选项都可在安装过程中配置。
- 自动更新 — 使用 Drupal 核心和站点能够安装和运行的众多模块,使 Drupal V5 部署保持最新这一任务十分繁重,需要站点管理员跟踪、下载和安装无数修订版本。Drupal V6 使维护自动化。警报会发出新代码已可用的通知,只需单击鼠标就能安装更新。
- 动作生成事件 — Drupal V6 能通过触发器 将动作 连接到事件。例如,只要发布新内容,触发器就会向您发送电子邮件,或者如果事例被编辑,就会降级头版事例。有 5 个触发器变型和 16 个预定义的动作,但可通过代码添加更多。
- 用鼠标解决困难 — Drupal 站点中的大多数界面元素 — 从块到菜单 — 都能重新配置、启用和禁用。Drupal 之前的版本努力实现这种可用的微调;Drupal V6 借助对拖放交互的广泛支持而使这项工作变得容易。实际上,JavaScript 已广泛而明智地应用在 Drupal V6 UI 之中,使许多单调的杂务变得令人愉悦。
- 抽象数据库 — Drupal 支持 MySQL 和 PostgreSQL,两种最流行的开源数据库。这两种数据库很相似,但又足够不同,使两种复杂模块开发存在差异。通常,一批 SQL 代码为 MySQL 而编写,另一些 SQL 代码是为 PostgreSQL 而编写。为减少修改,Drupal 引入了可抽象常见 SQL 操作的编程式界面,提供了一种技巧来改变独立于数据库引擎的模式。
- 语言支持 — 对国际化的支持已被细化和扩展。现在翻译是核心的一部分;每个域、URL 和用户都能表达语言偏好;核心主题支持从左到右和从右到左的书写系统。
还有很多别的变化。Drupal 现在支持用户通过行业标准的 OpenID 登录。您能够向系统的系统日志 (syslog) 域发送日志消息。可以自定义日期格式。还可以在内容中排斥 PHP 代码,以解决长期存在的安全隐患。
让我们在 Mac OS X V10.5 Leopard 上安装 Drupal V6。Mac OS X 是理想的系统,因为它包含整个 AMP 栈,而且您能够从您个人的 Sites 目录运行完整的 Drupal Web 站点。(Linux、UNIX 和 Windows 用户可参考 Drupal 包含的 INSTALL.txt 文件,了解针对这些平台的指导。在后三个平台上进行安装也很直接简明。)
- 从 Drupal.org 下载最新版本 Drupal V6 的源代码。下载后,您应当拥有一个名称类似 drupal-6.12.tar 的文件。(在本文撰写之际,Drupal V6 最新版本为 V6.12。)
- 将文件复制到您的 Home 目录之中的 Sites 目录,然后双击文件以解压到适当位置。
- 打开新创建的目录 drupal-6.12,定位到子目录 sites/default。使用 Finder 复制文件 default.settings.php,将复件重命名为 settings.php。
- 选择 settings.php,然后按下 Cmd+I。展开底部的 Sharing & Permissions 部分,单击锁图标来验证,并改变权限以允许您的小组和其他人对文件进行读写访问。您的设置应当如图 2 所示。 图 2. 允许每个人的读写权限
- 修改 sites/default 目录的权限,允许其他人写入目录:
- 定位到 Drupal site 目录。
- 单击 Default,按下 Cmd+I,然后进行验证。
- 修改权限,允许每个人的读写访问。
- 为您的新 Web 站点创建数据库。您一般会通过命令行来执行这一步骤,虽然 phpMyAdmin 和 Navicat 提供了用于管理数据库的窗口界面。
mysqladmin create drupaldemo
命令可创建一个名为 drupaldemo 的新数据库。如果您习惯使用 Terminal 和命令行,那么您能忽略 Finder 和之前的步骤,直接根据提示执行所有必要工作:$ cp drupal-6.12.tar ~/Sites $ cd ~/Sites $ tar xvf drupal-6.12.tar $ rm drupal-6.12.tar $ cd drupal-6.12 $ cp ./sites/default/default.settings.php ./sites/default/settings.php $ chmod a+w ./sites/default/settings.php $ chmod o+w ./sites/default $ mysqladmin create drupaldemo
- 运行 Drupal V6 安装程序:
- 将浏览器转到 http://localhost/~用户名/drupal-6.12,这里用户名 是您的简短登录名称。您应当会看到 Drupal 开始画面,如图 3 所示。 图 3. Drupal 开始画面
- 单击 Install Drupal in English。下一个画面提示输入您早前创建的 Drupal 数据库名称,以及登录名和密码,以访问数据库。
- 输入
drupaldemo
作为数据库名称,然后输入可访问数据库的用户名和密码。 - 单击 Submit。这时,Drupal 就不再需要特别访问 site/default/settings.php 或 site/default。对于前一个文件,使用 Finder 来取消除您之外每名用户的写权限。对后一个文件,使用 Finder 来取消其他人和所有人的写权限。在 Terminal 中,使用以下命令:
$ chmod 644 sites/default/settings.php $ chmod 755 sites/default
- 完成表单以配置站点:
- 为站点选择一个友好的名字,例如 Drupal Demo。
- 提供 Web 站点管理员电子邮件地址。
- 指定管理员姓名。
- 设置并确认密码,然后单击 Save and Continue。图 4 显示了结果。 图 4. Drupal 站点管理页面
没有内容的 CMS 就几乎没有用处,所以让我们创建一个事例。展开左侧的 Create content,然后单击 Story。表单提供了标题、主题和各种选项的栏目。
输入标题和简介,以及正文的一些文本。要分隔简介和事例剩余部分,可将光标置于简介之后,然后单击 Split Summary at Cursor。现在栏上的内容只有一个文章摘要,或预览。栏下的内容均为事例。当完整显示事例时,您可选择显示或隐藏摘要。图 5 截取了处理中的事例的状态。
单击箭头来显示其他选项。Revision information 选项保持相同事例的先前版本。Input format 可将内容限制为 HTML 的微小子集。您可使用 Menu settings 来根据内容设计菜单层次。
完成之后,单击 Save 并检查您的工作。图 6 显示了站点的新头版。
图 7 显示了详细页面。
如果您使用了 Drupal,哪怕只是较短的时间,您就将快速为之倾倒。本软件易于从无到有地启用,其核心特性和有用模块组合使之灵活、可扩展、可修改。如果您希望快速提供 Web 服务,Drupal 是值得考虑的选择,它一定能让您的投资得到回报。
学习
- 访问 Drupal.org 以获得文档、插件模块和其他资源,并与 Drupal 社区的其他成员相联系。
- 访问 CMS on Wikipedia Wikipedia,了解更多关于内容管理系统的信息。
- 查看 Theme Garden 可用 Drupal 主题用例。类似的,Drupal Modules 是可用 Drupal 模块的搜索数据库。
- 查看 CMSWatch 评论,判断 Drupal 或其他 CMS 是否能满足您的要求。
- 如需收听面向软件开发人员的有趣采访和讨论,请查看 developerWorks 播客。
- 随时关注 developerWorks 技术活动和网络广播。
- 查阅最近将在全球举办的面向 IBM 开放源码开发人员的研讨会、交易展览、网络广播和其他 活动。
- 访问 developerWorks 开放源码专区,获得丰富的 how-to 信息、工具和项目更新,帮助您用开放源码技术进行开发,并与 IBM 产品结合使用。
- 查看免费的 developerWorks 演示中心,观看并了解 IBM 及开源技术和产品功能。
获得产品和技术
- 使用 IBM 产品评估试用版软件 改进您的下一个开发项目,这些软件可以通过下载获得。
- 下载 IBM 产品评估试用版软件 或 IBM SOA Sandbox for Reuse,并开始使用来自 DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere® 的应用程序开发工具和中间件产品。
讨论
- 参与 developerWorks 博客 并加入 developerWorks 社区。
Martin Streicher 是一位 Ruby on Rails 的自由开发人员和 Linux Magazine 的前任主编。Martin 毕业于 Purdue University 并获得计算机科学理学硕士学位,从 1986 年起他一直从事 UNIX 类系统的编程工作。他喜欢收集艺术品和玩具。 |