8

我有一个安装了 Memcache 的 Drupal 7 网站,它在 Apache2 Web 服务器上运行良好。现在我已经用 HHVM (HipHop) 替换了 Apache2,并在性能上得到了真正的提升。

问题是很明显 Drupal 不能与 Memcache 服务器交互。这是错误:

Notice: Use of undefined constant MEMCACHE_COMPRESSED - assumed 'MEMCACHE_COMPRESSED' in dmemcache_set() (line 44 of /.../modules/memcache/dmemcache.inc).

当然,没有任何东西存储在 Memcache 中。

我想 Drupal 的 Memcache 模块正在使用 PECL Memcache:set(),这在这个新安装的 HHVM 中不可用。HHVM 是否有类似 PECL 的安装?

谢谢

4

1 回答 1

1

PECL 扩展不太可能与 HHVM 兼容,但“纯 PHP”实现可能仍然有效。它会比用 C 编写的东西慢,但缓存的好处可能会超过原始速度的任何缺点。

有人已经建议 Drupal 应该包含一个纯 PHP 实现,以防 Memcache/Memcached 扩展不可用。该建议包括一些替代方案的链接,因此请查看它们:

https://drupal.org/node/1999804

我快速浏览了第一个链接,不幸的是方法和常量似乎不是 100% 与 PECL 扩展兼容。但是您也许可以扩展该类,添加一些缺少的常量,并更改参数的顺序以匹配 PECL 扩展的方法。

于 2013-12-22T16:12:17.580 回答