在过去的十年中,Web应用程序的开发已经发生了很大的变化。今天,要实现一个Web应用程序,有许多新技术可供使用,还有许多方法可以用来架构一个应用程序以获得最优性能。 其中的一项技术就是memcached,它是一种高性能、分布式的内存对象缓存系统,您可以把它作为一种前端缓存来存储应用程序的数据,否则,您就只能从数据库中访问这些数据。对许多正在寻求各种方法来获取性能的公司来说,不花费一大笔资金就能实现这个目标,真的是巨大的恩惠了,现在用一般企业可承受的普通硬件就可以运行memcached,从而为应用程序缓存提供更多可用的内存。而在此之前,大家只将注意力集中在如何为数据库服务器增加更多的功能(硬件)。 随后,出现了MySQL,这是世界上最流行的开放源代码数据库,同时也是成熟的关系型数据库管理系统。在过去的十年里,MySQL已经有了很大的提升,能够提供许多细致的功能供Web开发人员使用。MySQL是随着万维网的出现而到来的,事实上,MySQL当时是许多Web应用程序所选用的数据库。因此,MySQL在万维网的快速发展中起了主要作用。随着Internet的发展,MySQL和Linux都在演变并且日益流行,也越来越适用于Web应用程序的开发。 另外一项并不很新但非常实用的技术是Perl。Perl是一种非常多用途的编程语言,它并不像现在许多新的程序语言有一些花哨的东西,而是默默无闻地为许多网站和应用程序提供有用的服务,可以说它肩负着成熟和稳定技术的重任。虽然这样,但Perl也有许多值得我们兴奋的亮点,它汇聚了开发人员二十多年来解决许多问题的结晶,以及大量的CPAN模块可用于任何您需要编程的地方。Perl也有一些新特性和框架程序,如Moose,以及Perl 6的最终版本。Perl 6经历了很长时间才得以发布,但那可能是因为Perl 5运行得非常好。另外,编写Perl程序本身也是一种非常快乐的享受。 其他的新技术包括: ●Ajax,它使得创建丰富和交互式的Web应用程序成为可能,它类似于传统的桌面应用程序,以一种基本的方式继续发展网络。 ●Gearman,是一个把工作外包给其他机器的系统,这是一种新系统,它使得实现分布式的计算/MapReduce成为可能。 ●Sphinx,是一种能够与MySQL很好地集成的强大的全文检索引擎。 本书的目的是逐个讲解这些技术,以帮助您深入理解其内涵,并把这些零碎的知识点串联起来,向您讲述如何使用这些技术来创建Web应用程序。本书还介绍了其他书籍根本不会涉及的细节,包括LAMMP(Linux、Apache、memcached、MySQL以及Perl的合称)栈的创意所在。 本书读者对象 为了能够理解本书所展示的内容,您至少应该具备Perl或者其他编程语言的中级水平,有能力执行一些普通的系统管理任务,并且对数据库有一个基本的理解。 本书面向的对象是中级程序员,虽然这样说,但覆盖的范围可能更广泛,例如一些精通Perl应用程序开发但不太了解数据库的程序员,还有一些是能够编写一些Perl工具的数据库管理员,但他们没有用Perl编写过Web应用程序。本书有意为两种技术搭建桥梁,以帮助“中间”群体的人能够学到一些新知识。 本书主要内容 本书会单独地讲解LAMMP栈中的每个组件,因此您可以深入理解每个组件。然后本书会把所有分开的部分组合在一起,以便能够有效地使用它们来开发Web应用程序。这不是一本典型的Web应用程序编程书籍,它是由一个在小型机构中必须实现许多不同角色的作者写成的。在这样的机构中,他必须扮演各种角色:数据库管理员、系统管理员,甚至是Perl应用程序编码人员。这也不是一本有关Web应用程序设计方面的书籍,本书所呈现的Web应用程序以尽量简单的设计一笔带过。 本书组织结构 本书涵盖下列主题。 第1章:介绍在这些年中,Web应用程序如何发展,以及概述本书将涵盖的所有最新技术。 第2~3章:介绍从基础到更高级的MySQL用法和概念,包括从编写MySQL用户自定义函数的介绍到Sphinx全文搜索引擎。 第4章:复习Perl编程。 第5章:复习面向对象的Perl编程。 第6章:用Perl和MySQL编程,涉及DBI。 第7章:介绍一个使用MySQL实现的简单的命令行Perl联系人列表应用程序。 第8章:介绍memcached,讲解如何把memcached作为一个缓存层使用,以编写Perl数据库应用程序。 第9章:讨论libmemcached,一个用C语言编写的memcached客户端库,它作为一种Perl接口,提供更多的功能和更好的性能。 第10章:Memcached Function for MySQL(UDFs)的入门介绍。 第11章:Apache安装和配置的完整指南。 第12章:??一个用Perl编写的简单的联系人列表CGI应用程序,演示了组合使用MySQL和memcached的效果。 第13章:mod_perl概述。 第14章:使用mod_perl处理程序,本章向您展示一些基础mod_perl处理程序,并演示mod_perl的强大功能。 第15章:更多mod_perl示例,展示如何将第12章的应用程序转换为一个mod_perl应用程序,并给出一些其他的mod_perl应用程序示例,比如处理cookies、sessions以及模板系统。 第16章:如何编写Ajax mod_perl Web应用程序。 第17章:本章将前面所有的技术组合在一起,呈现一个使用mod_perl、memcached、MySQL、Gearman以及Sphinx的搜索引擎应用程序。 附录A:安装MySQL。 附录B:MySQL的配置、备份以及监控。 使用本书的前提 本书主要面向Unix操作系统,但也很好地向您展示了如何在Windows系统下安装MySQL、Apache以及mod_perl。因此,本书所展示的例子完全可以在Windows下运行。 本书示例均已经过测试以确保它们能正常工作。尽管在本书的编辑阶段已经核实,但由于软件更新较快等原因,书中有些内容可能已有了变化。 阅读本书时,您可能要用到以下一些组件或软件: ●MySQL 5.1版本或更高,不过5.0版本应该可以正常工作。 ●Apache 2.2。 ●Modperl 2.0。 ●Perl 5.8版本或更高,不过更早的版本应该可以正常工作。 ●memcached 1.2.6版本或更高。 ●Sphinx 0.9.8版本或更高。 ●libmemcached 0.25版本或更高。 源代码 您学习本书中的示例时,可以手动输入所有的代码,也可以使用本书附带的源代码文件。本书使用的所有源代码都可以从本书合作站点/或www.tupwk.com.cn/ downpage上下载。登录到站点/,只要找到本书的标题(或者使用Search工具或使用书名列表就可以找到本书)。接着单击本书细目页面上的Download Code链接,就可以获得所有的源代码。 注释: 许多图书的书名都很相似,所以通过ISBN查找本书是最简单的,本书的ISBN是978-0-470-41464-4。 在下载了代码后,只需用自己喜欢的解压缩软件对它进行解压缩即可。另外,也可以进入/dynamic/books/download.aspx上的Wrox代码下载主页,查看本书和其他Wrox图书的所有代码。 勘误表 尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果您在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。 请给wkservice@vip.163.com发电子邮件,我们会检查您的反馈信息,如果是正确的,我们将在本书的后续版本中采用。 要在网站上找到本书英文版的勘误表,可以登录,通过Search工具或书名列表查找本书,然后在本书的细目页面上,单击Book Errata链接。在这个页面上可以查看到Wrox编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是/misc-pages/booklist.shtml。 要与作者和同行讨论,请加入上的P2P论坛。这个论坛是一个基于Web的系统,便于您张贴与Wrox图书相关的消息和相关技术,与其他读者和技术用户交流心得。该论坛提供了订阅功能,当论坛上有新的消息时,它可以给您传送感兴趣的论题。Wrox作者、编辑和其他业界专家和读者都会到这个论坛上来探讨问题。 在上,有许多不同的论坛,它们不仅有助于阅读本书,还有助于开发自己的应用程序。要加入论坛,可以遵循下面的步骤: (1) 进入,单击Register链接。 (2) 阅读使用协议,并单击Agree按钮。 (3) 填写加入该论坛所需要的信息和自己希望提供的其他信息,单击Submit按钮。 (4) 您会收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。 提示: 不加入P2P也可以阅读论坛上的消息,但要张贴自己的消息,则必须加入该论坛。 加入论坛后,可以张贴新消息,响应其他用户张贴的消息。可以随时在Web上阅读消息。如果要让该网站给自己发送特定论坛中的消息,可以单击论坛列表中该论坛名旁边的Subscribe to this Forum图标。 关于使用Wrox P2P的更多信息,可阅读P2P FAQ,了解论坛软件的工作情况以及P2P和Wrox图书的许多常见问题。要阅读FAQ,可以在任意P2P页面上单击FAQ链接。