跳转到主要内容
Dan 提交于 13 July 2012

至此,你已经看到了一些可插拔子系统是如何配置的,你还简要地回顾了各种不同的提供快速匿名页面服务的解决方案。仅通过采用上述解决方案,你就可以使你的站点在性能方面(感谢memcached)和对匿名访客规模化方面(感谢Varnish)有良好的表现。然而,如今是社会化网站的天下,它们需要的是服务已登录用户。问题变得棘手起来。虽然memcached确实为你赢得一些性能,还是有很多问题需要克服。你需要退回一步,去了解网站是如何操作、存储和读取数据,所遭遇的问题,以及解决这些互相之间不太相关问题的全新解决方案。 从更高的层面看,多数网站都执行着相同的动作:收集数据(要么是用户或管理员通过浏览器表单输入的,要么是从另一个网站聚合来的),存储数据到数据库,然后再把数据显示给用户。显示和更改数据的操作通常称为创建(Create)、读取(Read)、更新(Update)和删除(Delete)四大操作,简称CRUD。一个典型的网站会使用某种SQL数据库,并在其上执行这些操作。

Dan 提交于 13 July 2012

规模化工具集的另一个重要部分是Varnish。Varnish是一个存储页面和提供页面服务的外部程序。普通页面缓存需要一个到达web服务器的请求,顺序是:引导Drupal、加载页面、然后由Drupal发送请求。Boost模块提供一个更快的解决方案,因为现在请求只需到达web服务器,而Drupal并未启动。Varnish则更快,因为它自己处理请求。在匿名页面服务方面,它确实提供了非常快并且大范围的规模化解决方案。它以“Varnish让网站飞起来”为座右铭,并一直为此而努力。Varnish应用程序地址在www.varnish-cache.org/,与Drupal的整合方案在drupal.org/project/varnish

Dan 提交于 13 July 2012

接下来的解决方案在共享主机上将无法工作,你需要控制你的主机环境以达到优秀的性能和扩放。 memcached是将缓存存储在内存中并允许通过网络访问的一个独立程序。做为一个独立程序没什么特别,Drupal使用的数据库(如MySQL)也是这样的应用程序。memcached的与众不同之处在于,它的数据仅存储在内存中,这使得它非常非常快。使用该程序来取代数据库缓存对于Drupal的性能大有裨益。并且不仅仅是Drupal——这是一个非常成熟的解决方案,在每个大型网站中都有实际应用。 注意memcached不仅仅是一个性能解决方案,同时也是易于进行良好扩放的:你只需根据需要,在任意多个服务器上,启动任意多个它的实例,并配置Drupal来使用它们。memcached无需任何设置,因为每个独立的memcached实例不需要彼此了解。与它们每个进行对话的是Drupal。这和MySQL非常不同,它的主从服务器模式(master-slave)需要作明确的配置。

Dan 提交于 13 July 2012

对于开发目的而言,我建议使用最简单的缓存实现:无。有一种缓存实现等同于黑洞:缓存写入和清除程序不做任何事情,读取则永远是失败的。Drupal在安装过程中就使用这种假缓存,因为还没有任何关于何处缓存存储的信息可用。这种假缓存在开发过程中也非常有用。需要提醒的是,多步骤(因此还有AJAX)表单,需要一个工作缓存,当所有缓存都用黑洞方式处理时,它们将无法工作。要用Drupal自身的假缓存来让缓存短路,在settings.php中加入下面三行,settings.php文件在你站点的/sites文件夹下,通常它会是(相对于你的Drupal安装根目录下的)/sites/default/settings.php: $conf['cache_backends'][] = 'includes/cache-install.inc'; $conf['cache_class_cache_form'] = 'DrupalDatabaseCache'; $conf['cache_default_class'] = 'DrupalFakeCache';

Dan 提交于 13 July 2012

缓存是指临时存储一些处理过的数据。它可以是结构化数据或是包含HTML格式化文本的字符串。用缓存数据来提供服务,比从多个数据表中读取和处理数据更快,但另一方面,缓存数据是不可编辑的,所以不可能把它处理成另外一种格式。因此,原始数据必须保留在数据库中。现在你有了多个数据副本,原始数据和缓存之间就有可能会失去同步。在这种情况下,缓存数据是“陈旧的”。有时这样没问题;如果你一天出产几篇文章,更新的内容在原本发布日期后的几分钟内不被匿名用户看到可能并没有多大关系。这是规模化方面的另外重要一课:理论服从实践。规模化永远是在寻求折衷方案,对于一个给定的网站,这只是哪种折衷更能接受的问题而已。

gaqfa 提交于 13 July 2012

第1章 ■■■ 建立一个Drupal7站点

本杰明 梅兰肯 丹 哈基姆扎德 达妮 诺丁著

“好吧,我们能用艰难的方法完成这事,或者我们可以用Drupal的方法完成这事。”

                                                                                                                                     弗莱斯特 玛斯(红茶菌)

本书通过介绍使用Drupal 7创建网站的所有各个方面的内容,将会使你在Drupal的学习中少走弯路:它将会涉及结构和配置,模块开发,前台开发,持续运行项目,以及贡献Drupal的代码,文档,还有社区等等。 在第一章中还有什么比创建一个完整的站点更好的方法开始呢?在27页中,你要每小时从零点走到60英里(或每小时100公里,视情况而定)。在后面的章节中,你要使用Views【视图】的动态页面添加涡轮增压器,主题化赛车的条纹;以及jQuery奖杯的获得者;你还要执行一些商业方面花哨的练习等等。

Dan 提交于 13 July 2012

当你刚开始着手构建一个网站时,处理大流量通常不是你的重心所在。大部分人所关心的是先引来流量。毕竟只有拥有大型成功网站的人才需要担心流量问题。没有哪个网站一开始就有数百万用户。然而,你可能恰恰在一段时间内就可以获得那么多甚至更多。如果你在花大气力做网站营销,那么就有理由为用户增长而谋划了。即使你只是在整个互联网上有那么一个固定百分比的流量,你也可能会迎来惊喜;新的设备,甚至新类型的设备,让越来越多的人花越来越多的时间去浏览网站。当成功就在撞击大门时,你会做什么?你的网站是否能适应呢?

如果你的网站不能适应访客的增长,你将会处于痛苦不堪的境地:本应到来的成功,将会被抓狂的用户所取代。等待页面加载,有时还可能根本就接收不到网站的响应,不管是新进用户还是长期粉丝,无不如此。雪上加霜的是,通常网站的编码方式造成增加额外的硬件也帮不上太多忙;在这种情况下,网站就必须重构了,通常还是从头再来。当然,这种情况不是一夜之间发生的,而且通常发生这种情况时,公司正忙于其他事情:增长。简而言之,更多的流量几乎意味着更多的潜在业务,所以与此同时,公司要尽力应付新需求所带来的必要增长,而这时网站方面又突然需要重大重构。当这种事情发生时,网站可能每天都会崩溃。公司或组织眼看着成功在望,却要艰难地维持网站的运转,这是我们不愿意看到的一幕。

gaqfa 提交于 13 July 2012

第1章 从规划开始,到给予人们发表页面和其他内容的特权,带领你全程建立一个Drupal站点,其中包括有很多关键的Drupal概念,一路下来也给出了很多技巧。在第8章和第33章中会继续创建这个网站。

第2章 介绍两个任何Drupal人员【Drupalista】生活中的基本工具:Drush—在Drupal中能更快更容易完成许多任务的Drupal框架;和Git—一个分布式版本控制系统,使你能自由地体验你的代码--并与世界各地的人们合作。

东方龙马 提交于 13 July 2012

主题设置任务位于Drupal管理中的“外观”(Appearance)一栏。这里就是你可以控制一些事情,如哪些主题打算开启还是禁用,你想申请哪些设置,你想选择哪种配色方案(如果你的主题支持color模块的话),等等。

东方龙马 提交于 13 July 2012

Drupal的主题目录中也包含一个“engines”目录,其中包含一个叫做PHPTemplate的主题引擎。主题引擎提供了一种方式用来分离主题化输出模板文件如同原始的PHP一样简单。使用PHPTemplate引擎的主要好处是,简化了从表现中分离逻辑。这对那些不熟悉PHP语言的人将大有作为,因为他们都能够在主要包含标记和打印变量的模板文件下工作。

虽然其他主题引擎如Smarty、XTemplate和PHPTal可能被使用,PHPTemplate是Drupal的默认主题引擎而且也是迄今为止Drupal主题用过的最流行的主题引擎(许多流行的贡献模块也在使用),所以在本章中我们将会包含该内容。当然,也可以做纯PHP的Drupal主题。例如,变色龙(Chameleon)主题就是一个纯PHP的主题,http://drupal.org/project/chameleon。想获知更多可用的主题引擎完整列表,请访问http://drupal.org/project/theme+engines。

订阅