博客 / Linux/ 解决WordPress安装Memcached后页面空白问题

解决WordPress安装Memcached后页面空白问题

解决WordPress安装Memcached后页面空白问题

问题描述

在使用 LNMP 一键安装脚本部署 WordPress 后,安装了 php-memcached 扩展,并将 object-cache.php 文件上传至 wp-content 目录。刷新网站主页后,出现页面完全空白(白屏)的情况,网站无法正常访问。

原因分析

此问题通常是由于 PHP 扩展与 WordPress 对象缓存插件不兼容导致的。关键区别在于:

  • php-memcache:一个较老但稳定的 PHP 扩展,使用 Memcache 类。
  • php-memcached:一个较新、功能更丰富的 PHP 扩展,使用 Memcached 类(注意结尾有字母 d)。

大多数为 WordPress 编写的 object-cache.php 缓存后端文件(尤其是那些广泛流传的版本)是为 php-memcache 扩展设计的。如果服务器安装的是 php-memcached 扩展,而插件调用的是 Memcache 类,就会因类不存在而引发致命错误,导致页面空白。

解决方案

根据您使用的 object-cache.php 文件的要求,安装对应的 PHP 扩展。

方案一:安装 php-memcache 扩展(推荐)

如果您的 object-cache.php 文件是通用版本,最直接的解决方法是卸载 php-memcached 并安装 php-memcache 扩展。

  1. 卸载 php-memcached 扩展(以 LNMP 环境为例):
    # 进入 LNMP 安装目录
    cd /path/to/lnmp
    # 执行卸载脚本,选择对应 PHP 版本和 memcached 扩展
    ./addons.sh uninstall
    
  2. 安装 php-memcache 扩展
    # 同样在 LNMP 目录下,执行安装脚本
    ./addons.sh install
    # 在列表中选择 memcache(注意不是 memcached)进行安装
    
  3. 重启 PHP 服务
    # 重启 PHP-FPM 服务,例如对于 PHP 7.4
    lnmp php-fpm restart
    # 或使用系统服务命令
    systemctl restart php-fpm
    
  4. 刷新 WordPress 页面,空白问题应已解决。

方案二:使用适配 php-memcached 的 object-cache.php

如果您希望使用更新的 php-memcached 扩展,则需要寻找或修改一个专门为其编写的 object-cache.php 文件。您可以在 GitHub 等代码托管平台搜索 "WordPress object-cache.php memcached" 来获取相关文件。替换文件后,同样需要重启 PHP 服务。

如何确认扩展已正确安装?

创建一个 phpinfo.php 文件,访问该页面并搜索 "memcache",可以查看已加载的扩展。

<?php
phpinfo();
?>

如果看到 "memcache" 模块,说明方案一成功。如果看到 "memcached" 模块,则说明您安装的是另一个扩展。

总结

WordPress 页面空白通常是由于 PHP 致命错误未被捕获所致。在配置 Memcached 对象缓存时,务必确保 object-cache.php 文件与服务器上安装的 PHP Memcache 扩展类型(php-memcachephp-memcached)完全匹配。对于大多数用户,安装 php-memcache 扩展并使用通用的缓存文件是最简单可靠的方案。

发表评论

您的邮箱不会公开。必填项已用 * 标注。