【问题标题】:Why is my wordpress site on GAE not being cached?为什么我在 GAE 上的 wordpress 网站没有被缓存?
【发布时间】:2014-02-09 23:28:55
【问题描述】:

我在 GAE 上安装了 wordpress 3.8.1 - 从另一台主机上的 WP-MU 安装转移。我安装了正在工作的 GAE 插件,但提到我还应该安装 batcache 和 memcached 插件。所以我安装了它们,但它们似乎没有工作 - 我在<head> 部分没有调试输出,响应为 200,站点通常很慢。我可以做些什么来启用缓存?以下是使用curl -i 重新加载 2 次后的响应标头:

HTTP/1.1 200 OK
Vary: Cookie
X-Pingback: http://www.websiteinquestion.com/xmlrpc.php
Content-type: text/html; charset=UTF-8
Vary: Accept-Encoding
Date: Sun, 09 Feb 2014 23:20:32 GMT
Server: Google Frontend
Cache-Control: private
Alternate-Protocol: 80:quic,80:quic
Transfer-Encoding: chunked

启用时有一些调试输出:

Notice: Undefined offset: 1 in /base/data/home/apps/s~xxx/xxx.stringofnumbers/wordpress/wp-content/object-cache.php on line 374

这里是 app.yaml

application: xxxxx
version: xxx
runtime: php
threadsafe: no
default_expiration: "2d"
api_version: 1
instance_class: F1
automatic_scaling:
  min_idle_instances: 0
  max_idle_instances: 1
  min_pending_latency: automatic
  max_pending_latency: 15000ms

在 wp-config.php 我添加了

define('WP_CACHE', true);

我尝试在 GAE 控制台上查看内存缓存统计信息,但在任何地方都找不到查看器。在设置中 memcache 设置为共享模式。

【问题讨论】:

  • 查看器在管理控制台,data下的最后一项是'memcache viewer'
  • 谢谢,我找到了 - 我正在查看 cloud.google.com 但应该查看 appengine.google.com 可悲的是缓存似乎正在工作(尽管插件仍然没有输出任何东西),但网站仍然很慢。

标签: php wordpress google-app-engine caching memcached


【解决方案1】:

在我的情况下,谷歌设计的 batcache 配置是问题的原因。在https://developers.google.com/appengine/articles/wordpress 给出的说明中,它说:

在您的 wp-config.php 文件中,在文件末尾添加以下行:

$batcache = [
  'seconds'=>0,
  'max_age'=>30*60, // 30 minutes
  'debug'=>false
];

如果你这样做,你会收到一个警告:

警告:call_user_func_array() 期望参数 1 是有效的 回调,第一个数组成员不是有效的类名或对象 /Users/per/google-cloud/appocentric-wordpress/wordpress/wp-includes/plugin.php 在第 199 行

但是,如果您将 batcache 配置行移动到读取行之前

/* 就是这样,停止编辑!快乐的博客。 */

在 wp-config 中,它可以工作!因此,在这种情况下,请相信 Wordpress 的家伙而不是 Google...

================

我还找到了您描述的未定义偏移量问题的修复程序(来源 http://wordpress.org/support/topic/fix-for-notice-undefined-offset-1)。

Memcached Memcached 插件版本 2.0.2 给出以下错误消息:

Notice: Undefined offset: 1 in /var/www/html/wp-content/object-cache.php on line 374

这是由于仅将服务器列为默认服务器而没有端口:

array(1) { [0]=> string(9) "127.0.0.1" }

在第 374 行中没有列出用于填充端口变量的端口,从而导致未定义的偏移量通知。这是第 374 行:

list ( $node, $port ) = explode(':', $server);

解决方法是修改第 365 行:

$buckets = array('127.0.0.1');

到:

$buckets = array('127.0.0.1:11211');

这已在源代码中修复,将在未来版本 > 2.0.2 中提供

【讨论】:

    【解决方案2】:

    在管理中禁用 RSS 小部件 后,网站被正确缓存。

    【讨论】:

    • 我有同样的问题,但我找不到任何要禁用的 RSS 小部件...默认情况下,在我使用的主题中,页面上有指向 RSS 提要的链接,但在管理员没有找到活动的 RSS 小部件...
    猜你喜欢
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 2016-09-28
    • 1970-01-01
    • 2018-01-16
    • 2013-02-25
    • 1970-01-01
    相关资源
    最近更新 更多