当WordPress缓存功能出现故障时,通常表现为以下几种情况:
首先需要确定缓存问题的具体类型,执行以下诊断步骤:
登录WordPress后台,进入插件页面,确认缓存插件是否处于激活状态。如果使用WP Rocket、W3 Total Cache等插件,检查其设置页面是否有错误提示。
在未确定问题原因前,先执行完整的缓存清理:
varnishadm "ban req.url ~ /"如果使用缓存插件,按以下步骤排查:
临时禁用所有非缓存插件,只保留缓存插件:
/wp-content/plugins/目录contact-form-7改为contact-form-7-disabled如果怀疑插件配置错误,重置插件设置:
wp_options表(表前缀可能不同)wp_rocket_settings重新安装缓存插件确保文件完整:
/wp-content/plugins/如果使用PHP OPcache,检查其配置:
phpinfo.php文件,内容为php.ini:opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=2
opcache.fast_shutdown=1
修改后重启PHP服务:sudo systemctl restart php8.1-fpm
检查对象缓存服务状态:
sudo systemctl status redis 或 sudo systemctl status memcachedsudo systemctl start rediswp-config.php中确保配置正确:
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_DATABASE', 0);
define('WP_REDIS_PASSWORD', '');
redis-cli ping,应返回PONG检查Nginx缓存配置:
/etc/nginx/nginx.conf或/etc/nginx/sites-available/目录下sudo mkdir -p /var/run/nginx-cachesudo chown www-data:www-data /var/run/nginx-cachefastcgi_cache_path /var/run/nginx-cache levels=1:2 keys_zone=WORDPRESS:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
检查MySQL查询缓存状态:
SHOW VARIABLES LIKE 'query_cache%';/etc/mysql/my.cnf):[mysqld]
query_cache_type = 1
query_cache_size = 64M
query_cache_limit = 2M
修改后重启MySQL:sudo systemctl restart mysql
清理和优化数据库表:
mysqlcheck -o 数据库名 -u 用户名 -p检查WordPress根目录下的.htaccess文件:
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"
确保mod_expires模块已启用:sudo a2enmod expires
使用浏览器开发者工具检查HTTP响应头:
Cache-Control、ETag、Last-Modified等头信息如果使用Cloudflare,检查以下设置:
/wp-admin/或/wp-login.php时,缓存级别为绕过确保CDN不缓存以下内容:
/wp-admin//wp-login.php修复后执行完整验证:
配置缓存监控以防问题复发:
du -sh /var/run/nginx-cache/建立预防性维护流程:
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图