这 是一篇由零开始的新手教程,我将从最原始的知识一点一点指导大家如何配置一台高性能的Drupal服务器,由于内容较多,涉及范围较大,篇幅较长,请初学 者一定要耐心完整阅读,否则你只会永远停留在初学者阶段。另,如果遇到不了解的词语一定要多使用搜索(谷歌,百度),不要不懂装懂,因为接下来安装的组件 较多,服务器的逻辑会变得极为复杂,你一定要弄清各层次的关系,否则建议只安装LAMP即可,不要进行任何忧化。

摆正心态

我想很多人会直接跳过这部分看下面的内容,我当初刚接触“站长”这一兴趣时,我也急于使用各种新工具,喜欢尝试各种超前的技术,喜欢直接看配置方 法、安装教程之类的文章,而对于技术研究型文章则读得少之又少。而当我接触Drupal半年之后,我发现国外的文章给了我很大的启发,我觉得一个软件 (Drupal模块)真正应用起来真的不是那么简单,虽然不至于阅读模块的代码那么去深入了解,但起码要了解模块的原理的使用的技术,这样才是真正地学以 致用。如果一知半解,最终只会淹没在“搜索+提问”之中。

  • 初学者需要十足的耐性,学习Drupal需要阅读大量的文档(总比没有得看好),如果只读一半或者只挑实操部分阅读,你的Drupal之路将会越走越辛苦。

  • 在尽自努力后仍找不到解决问题办法,才去寻找别人的帮助。

Drupal服务器选择

现时的服务器主要有四种,本地开发机、虚拟空间、独立主机和最近非常流行的云服务器,下面详细讲解各种服务器优缺点:

  • 本地开发机:无网络限制的极速开发环境,不用担心网络宽带的问题,但不代表这种环境的下网站速度最快,因为网站速度除了宽带还涉及硬件环境、系 统环境、Drupal优化等许多方面,对于希望真正学习建设一个“线上网站”的朋友来说,本地开发机并不是一个好选择,因为无法得到运行一个线上项目的实 际经验。但对于希望专注于Drupal开发的朋友来说,这种环境却是最理想环境,不仅不需要租金,而且可操作范围相当大。

  • 虚拟空间:一台服务器划出多个虚拟空间,配置相对简单(应该说灵活性最差),胜在便宜,稳定(不见得)。你只需要把Drupal源代码FTP上 传到空间安装即可,无需(无法)对服务器进行任何设置。是个即买即用的应用环境,适合简单开发和性能要求不高的用户,也适合那些运行微型网站的朋友 (Drupal运行会相当痛苦,不仅缓慢,而且一些有有的模块需要命令行,例如Drush)。(例如:HostEase,非常便宜的外国空间,无限空间,但宽带速度和性能稳定方面不敢恭维)

  • 独立主机:一台实体服务器,性能强劲,配置灵活,安全稳定(但被老鼠咬也是有可能的,这不是开玩笑),最大的缺点就是价格较贵,而且升级或变更配置较为麻烦,一般适用于中小型网站。(例如:国外大热的Linode

  • 云服务器:一台大型超级计算机或合并多台大型计算机,利用虚拟技术划分出多台虚拟服务器,一般带有独立IP,操作使用上跟实体服务器没什么差 别,配置相当灵活,扩展相当简便,性能也很强劲,并且在云技术的帮助下,可以建立大型的服务器集群系统,是服务器未来的发展方向。(例如:阿里云

Drupal运行环境选择

虽然Drupal对各种环境都能适应,但不代表任何环境都一样。给Drupal提供一个稳安、安全、快速的系统环境相当重要,除此之外,也要考虑 Drupal模块兼容问题,因为模块才是Drupal的灵魂。根据drupal.org的建议,最理想的运行环境是LAMP,Linux + Apache 2.2.x + MySQL 5.x + PHP 5.3,这种环境是Drupal社区的默认环境,能够得到最多的支持和帮助。(如果你想了解更多Drupal运行环境的信息,请点击这里:Drupal对运行环境的要求。)

社区支持的重要性

这里有必要了解一下drupal.org社区,它不同国内论坛,它的技术性非常强,学习气氛极好,你不会看到“顶”、“怎么做一个商业网站?”、 “不懂就别说”、“用百度”等等这些让人讨厌的语句,你看到都是"It's ok", "You should follow this instrution: bla bla bla...", "You can't do that, you may need to...", "Thanks a lot, many help."等等,除了体会到让人敬佩的素质,更重要的是那种专注学术的气氛,真的能让人学到很多东西(我的知识百分之九十都在drupal.org学 到)。你会感觉得你不是一个人在奋斗,那种互助互爱的体验会让你感动。正如drupal口号,come for the software,stay for the community.

如果得到社区的大力支持,表示很多问题能够直接在社区找到答案或者社员会积极回答你的问题,如果你的环境比较冷门,这可能需要自一个寻找解决问题,这是一个十分痛苦的过程。

LAMP安装

推荐使用BitNami的LAMP一键安装包,虽然比国内的那些功能稍弱一些,速度也没国内的快,但胜在兼容性一流,十分稳定。我认为服务器的稳定 比什么都重要,时不时弹出个502内部错误或者时常为模块兼容问题搜篇整个地球,这可不是件讨人喜欢的事,我情愿多花一两秒去加载,况且经过优化之后根本 没有差距。安装过程请看这里:bitnami一键LAMP新手安装教程5.3.27-5.5.3(记住把Varnish选择上),如果不会连接远程操作服务器,可以查看这里:Xshell连接远程Linux服务器 ,不懂如何操作FTP,可以看这里:最爱的FTP软件--Xftp

创建数据库

在安装完LAMP之后,我们还要为Drupal准备一个专用的数据库哦,这时候PHPMyAdmin就出场啦。请阅读:使用PHPMyAdmin管理你的数据库

安装Drupal

如果上面步骤没什么问题,那么接下来就是安装Drupal源代码啦,其实很简单啦,跳转这里查看教程:[新手]Drupal7.x图文安装教程

安装APC

APC是一款十分高效的PHP缓存组件,能大大提升PHP的执行速度。

PECL-APC

如果上面步聚都没什么问题,接下来就可以安装APC了,安装过程比较简单,但对新手可能会有一些疑惑,我尽量说明清楚,不懂请留言。具体安装方法请查看:LAMP加装PHP opcode-APC,如果该教程学会了之后,以后安装什么PHP扩展组件(PECL),例如uploadpogress,照着例子操作即可。

整合Drupal的APC模块

APC有一个专门用于整合Drupal的模块,请查看该文安装:Drupal性能优化,APC - Alternative PHP Cache。为了更好地进一步了解APC的运行情况,建议安装APC状态报告模块:APC Status-APC状态报告

关于APC部分这里就可以结束了,现在来说你的服务器速度应该会有明显的提升,而且各 部件的逻辑关系还算简单,接下来就开始安装Varnish了,这一步开始服务器将变得极为复杂,请做好心理准备并做好备分。如果你坚持往下操作,请认真理 解每一句每词的意思,否则建议马上停止。

安装Varnish

Varnish vs HTML静态化

这两个都是用于网站页面缓存的技术,都能够把网站页面静态化然后存起来,在用户访问的时候直接读取缓存,不必重新运行PHP、MySQL等等,能够 大大减少服务器资源的浪费,提高页面的输出速度,但这两种技术有什么不同,对于初学者来说选那个比较好呢?首先要对这两者使用的原理有个了解:

  • Varnish是一款反向代理软件,具有缓存网站内容的功能,由于内容会放在内存中,因此读取性能十分高效(特别是大文件),能够应付大量的并 发连接,一般大型网站都会使用,而图片、视频等多媒体网站更是必备软件。然而Varnish的缓存功能却不是主角,它的反向代理功能才是真正的主角,它能 像Nginx一样,转发用户的请求,例如像图片这种不需要运行,只需直接读取的静态文件,Varnish就会直接从内存(先前已经缓存了)读取,然后发给 用户。而像评论、用户信息这种动态信息就能转给Apache处理,然后反回给Varnish再发回用户,如果站长把“评论、用户信息”这部分内内缓存在 Varnish当中,Varnish还能直接在缓存中读取然后发回用户,这速度甚至比Apache直接读取HTML文件还要快!这还不是Varnish的 全部,它还能用于负载均衡,建立一个大型的服务器集群也是可以的哦。(本站使用Varnish技术)

  • HTML静态化技术是一种比较传统的技术,它的原理相对Varnish来说十分简单,它不涉及反向代理、不涉及缓存,它就是把动态的内容生成静 态的HTML的文件,当用户访问时直接从硬盘中读取HTML文件返回给读者,当需要动态内容时则使用Ajax技术用服务器中取得内容返回给用户。HTML 静态化技术适合单机单人维护的网站,维护比较简单。(例如:Drupal中国使用HTML静态化技术)

Varnish安装之后它将挡在Apache前面,因此千万要记住把Varnish这一层的逻辑关系,这将涉及转发、session、缓存等很多方面的问题,必须想清楚是那一层的问题,否则强烈建议不要安装。安装过程请查看:高端气质,LAMP加装Varnish教程

安装Authcache模块

这是最重要的一步,安装过程比较简单,但要深入理解和后继管理就会比较复杂,需要有各方面的知识积累。模块的简介请查看:认证用户页面缓存。

Authcache配置

模块的安装就不说了,除了主模块必须开启之后,其余模块要按实际情况开启。

  • 如果你使用Varnish作为加速器,建议开启:Authcache,Authcache Ajax,Authcache Block,Authcache Comment,Authcache Contact,Authcache ESI,Authcache ESI Debug,Authcache Field,Authcache Form,Authcache Forum,Authcache Menu,Authcache Page Manager,Authcache Panels,Authcache Personalization API,Authcache Poll,Authcache Search,Authcache Varnish Storage Backend,Authcache Views

  • 如果你不使用Varnish,希望使用html静态化,需要安装Boot模块,并启用Authcache,Authcache Ajax,Authcache Block,Authcache Comment,Authcache Contact,Authcache Field,Authcache Form,Authcache Forum,Authcache Menu,Authcache Page Manager,Authcache Panels,Authcache Personalization API,Authcache Poll,Authcache Search,,Authcache Views,Authcache Boost Storage Backend (UNSUPPORTED)模块。(本站没测试,请反馈结果,十分感谢)

开启之后就可以到“管理 - 配置 - Authcache”进行详细的配置了,因为配置里的说明都十分详细了,这里就不再重复说明了。有个问题需要注意,就是在“管理 - 配置 - 性能”那里有个“对匿名用户缓存页面”的选项,这个必须关闭,否则Authcache对匿名用户的缓存功能就会失效。

结束

把这些东西都拼凑整合之后,你的网站速度就会有极大的提升,如果你在多媒体内容方面较多可以使用CDN继续优化(CDN加速--整合七牛CDN百度乐360网站卫士安全宝等等)