Drupal 7优化

性能优化

服务器软件

  • web服务器:使用Nginx,而不要使用Apache。Nginx + Drupal的经典配置这里已经有了。在配置phpcgi时,UNIX socket比TCP/IP port在性能上更有优势,尤其是在大负载的情况下。
    • pagespeed模块:我不会展开细节配置,但是这篇文章会给你所有你需要的信息。另外,使用共享缓存或Memcached做pagespeed的caching layer对性能也有很大的提升。
  • 使用PHP 7(PHP 7性能优于PHP 5.x,另外,在运行Drupal时HHVM也许并没有明显优势)。Drupal 7核心及主流模块完全兼容PHP 7。
  • 当拥有完整服务器权限(e.g., 使用独立主机)时,deminy推荐的web服务器配置之一是:Nginx + php-fpm + MariaDB/MySQL + PHP 7 + apcu + Couchbase (+ New Relic)等。

缓存运用

  • opcode caching:Opcache。5.5+以上默认自动集成了这个模块。对大流量网站,Opcache参数配置也很重要(以后有空再展开)。使用APC做opcode caching不再是个选项(因为APC已经事实上停止开发和维护了)。
  • 数据缓存
    • 首先,请明确一点:不同类型的后台数据缓存引擎是可以共存的。
    • 必用apcu(不是APC)缓存核心数据(bootstrap, blocks, filters, menus, etc)。至于替代选项xcache等等……如果你真不嫌麻烦的话,可以。
    • 推荐使用Memcached等进行页面级等方面缓存,但更推荐用Couchbase替代Memcached。既然用了Couchbase,就没必要使用boost模块了。
    • 通过模块Memcache Storage使用Memcached(或其他内存引擎)而不是files做session handler。

模块运用

数据库

  • ALTER TABLE {semaphore} ENGINE=MEMORY;
  • 使用了Captcha模块?ALTER TABLE {captcha_sessions} ENGINE=MEMORY;

​​​Drupal系统维护

  • 禁止基于web的模块更新、模块安装、模块卸载、cron脚本运行、缓存释放等操作。管理员级别的系统维护统一全部通过Drush以命令行方式运行。
    • Apache/Nginx配置里面应禁止对/install.php, /update.php, /cron.php等URL的访问。

​​​​反垃圾

  • 首先:Drupal网站必须安装反垃圾模块(除非你的网站有很强的权限限制,比如不允许匿名用户自行注册激活账号等等),因为针对Drupal的spam attack太多。
  • deminy个人不推荐使用Captcha模块或Image CAPTCHA模块。
  • 资金宽裕的情况下,deminy推荐适当使用Mollom模块。
  • 免费情况下,使用Honeypot+Spamicide这两个模块的组合。deminy建议优先考虑使用Honeypot+Spamicide这两个模块的组合,随后才是考虑是否有必要在此基础上使用Mollom模块。

搜索引擎优化

  • 有空再展开。

安全优化

  • 有空再展开。

备注

  • 有空再展开。