问题描述
在使用 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 扩展。
- 卸载 php-memcached 扩展(以 LNMP 环境为例):
# 进入 LNMP 安装目录 cd /path/to/lnmp # 执行卸载脚本,选择对应 PHP 版本和 memcached 扩展 ./addons.sh uninstall - 安装 php-memcache 扩展:
# 同样在 LNMP 目录下,执行安装脚本 ./addons.sh install # 在列表中选择 memcache(注意不是 memcached)进行安装 - 重启 PHP 服务:
# 重启 PHP-FPM 服务,例如对于 PHP 7.4 lnmp php-fpm restart # 或使用系统服务命令 systemctl restart php-fpm - 刷新 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-memcache 或 php-memcached)完全匹配。对于大多数用户,安装 php-memcache 扩展并使用通用的缓存文件是最简单可靠的方案。