You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPGraphQL Smart Cache 无法正常工作的原因排查求助

排查WPGraphQL Smart Cache未触发缓存的问题

针对你的情况,从以下几个方向逐步排查:

1. 插件基础验证

  • 确保WPGraphQL核心插件已激活,WPGraphQL Smart Cache是依赖它的附属插件,核心未启用的话缓存逻辑完全不工作
  • 进入WordPress后台的WPGraphQL > Settings > Cache页面,确认全局缓存开关已开启,同时检查Excluded Queries列表里有没有误加了你测试的查询语句
  • 核对插件版本兼容性:确认WPGraphQL和Smart Cache的版本适配,且官方文档标注支持PHP 8.2(如果插件版本过旧可能不兼容高版本PHP)

2. Nginx配置检查

  • 检查Nginx站点配置文件(通常在/etc/nginx/sites-available/目录下),确认没有fastcgi_hide_header X-Cache;这样的指令,这会直接隐藏插件输出的缓存头
  • 确保Nginx正确传递请求头到PHP,在location ~ \.php$块内添加或确认以下配置:
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    fastcgi_param HTTP_HOST $host;
    fastcgi_param X-Forwarded-For $remote_addr;
    
  • 如果Nginx自身配置了静态缓存(如proxy_cache),暂时禁用后测试,避免两种缓存机制冲突

3. PHP环境与权限排查

  • 查看PHP错误日志(通常在/var/log/php8.2-fpm.log),搜索WPGraphQL或Smart Cache相关报错,比如缓存目录写入失败的权限问题
  • 确认WordPress的wp-content/cache目录归属为www-data用户,权限设置为755,执行命令:
    sudo chown -R www-data:www-data /var/www/your-site/wp-content/cache
    sudo chmod -R 755 /var/www/your-site/wp-content/cache
    
  • 检查PHP的opcache是否启用(不是必须,但可能影响插件逻辑),查看php.ini里的opcache.enable=1配置

4. 缓存类型配置细节

本地缓存

  • 在插件设置里确认本地缓存的存储路径正确,默认是wp-content/cache/wpgraphql,手动检查该目录是否存在且可写

对象缓存(如Redis/Memcached)

  • 确认对应的PHP扩展已安装:比如Redis需要php-redis,执行sudo apt install php8.2-redis并重启PHP-FPM
  • 在wp-config.php里添加对象缓存的配置常量,以Redis为例:
    define( 'WP_REDIS_HOST', '127.0.0.1' );
    define( 'WP_REDIS_PORT', 6379 );
    define( 'WP_REDIS_DATABASE', 0 );
    
  • 回到插件设置,确认已选择对应的对象缓存驱动

5. 请求本身的验证

  • 使用匿名浏览器窗口测试,登录状态下插件默认会跳过缓存(因为用户会话存在个性化内容)
  • 确认请求是GET方法,POST请求默认不会被缓存,如需缓存POST请求,要在插件设置里开启Cache POST Requests选项
  • 检查请求头里是否带有Cache-Control: no-cache或Pragma: no-cache,这些指令会强制插件不生成缓存

内容的提问来源于stack exchange,提问作者Ilya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 17:24:57