WordPress 4.9.3自动更新后PHP致命错误的解决方法咨询
这个错误我之前帮不少用户排查过,核心原因是request_filesystem_credentials()函数所在的文件没被正确加载或者损坏了,下面是一步步的解决方案:
检查核心文件是否完整
request_filesystem_credentials()函数定义在wp-admin/includes/file.php文件里,先登录你的服务器(用FTP或控制面板文件管理器),确认这个文件是否存在。如果丢失或者内容异常,去WordPress官方下载4.9.3版本的完整安装包,解压后把对应路径的file.php上传替换原文件。手动引入函数文件
如果file.php存在但系统没自动加载,你可以在出错的文件wp-admin/includes/class-wp-upgrader-skin.php开头位置(比如<?php之后)添加一行代码强制引入:require_once ABSPATH . 'wp-admin/includes/file.php';注意不要修改其他代码,只添加这一行即可,完成后刷新页面查看错误是否消失。
修复文件权限问题
服务器文件权限不正确也可能导致PHP无法读取file.php。在Linux服务器下,设置file.php的权限为644,它所在的includes文件夹权限设为755:- 用FTP工具的话,右键文件选择「文件权限」就能修改;
- 用命令行的话,可以执行:
chmod 644 wp-admin/includes/file.php chmod 755 wp-admin/includes/
排查插件/主题兼容性
WordPress更新后,部分旧插件或主题可能和新版本不兼容,干扰了核心文件的加载。你可以:- 重命名
wp-content/plugins文件夹为plugins-temp,临时禁用所有插件; - 切换到WordPress默认主题(比如Twenty Seventeen,把当前主题文件夹重命名即可);
- 刷新后台看错误是否消失。如果消失了,再逐个恢复插件和主题,找出冲突的那个并更新或替换。
- 重命名
重新覆盖核心文件
如果以上方法都没用,可能是更新过程中多个核心文件损坏了。下载完整的WordPress 4.9.3安装包,解压后只上传wp-admin和wp-includes两个文件夹到服务器,覆盖原有文件(注意不要碰wp-content文件夹,避免丢失你的主题、插件和内容)。
内容的提问来源于stack exchange,提问作者Tung

