Class ‘DomDocument’ not found(WordPress 导入文章遭遇空白页面问题)

WordPress 导入文章时使用的 wordpress-importer 插件需要使用 DOM 模块来处理 XML 数据。如果服务器上没有正确安装/配置 DOM 组件,则会在选择文件并点击导入按钮后遭遇空白页面。需要 XML 处理能力的 PHP 程序在遇到此问题时都会有 Class 'DomDocument' not found 错误提示。

如果服务器开启了 PHP 错误报告,会遇到错误提示;如果没有开启 PHP 错误报告,也可以在服务器的错误日志记录中看到该错误提示。该提示类似于:

Class 'DOMDocument' not found in wordpress-importer/parsers.php on line 61

如果没有服务器错误日志的访问权限(比如在一个共享主机上),可以修改插件的源文件(比如通过 WordPress 管理后台的“插件” ——> “编辑”,如果是多站点模式的 WordPress 安装,则需要在“我的站点” ——> “管理网络”,然后“插件” ——> “编辑”来修改遇到问题的插件的源文件),将下面的 PHP 执行语句插入到插件源文件的开头:

ini_set('display_errors', 1);

注意上述语句必须在 <?php 和 ?> 之间。

然后重新执行遇到问题的操作,看看是否能看到错误提示。

对于本文开头提到的问题,wordpress-importer 需要 xml 支持。如果有服务器的管理权限,可以在服务器上查看是否安装了 DOM MODULE 扩展,

# php -m | grep xml
libxml
xml
xmlreader
xmlwriter

或者使用 php-info.php 来查看(打开后 Ctrl+F 来查找 dom 或 xml)。

如果没有 libxml、xml、xmlreader、xmlwriter,则使用 wordpress-importer 导入文章的时候会报错,错误提示如前所示;或者操作执行后遭遇空白页面。正常情况下,使用 wordpress-importer 导入文章后应该会提示选择如何处理导入文章的作者。

解决办法就是安装 DOM 模块。如果没有服务器管理权限,则需要联系服务器管理员。

以管理员身份登录服务器后,执行以下指令。在 CentOS / RHEL / OpenSUSE 上,

# yum install php-xml

在 Ubuntu / Debian 上,

# apt-get install php5-dom

然后重启 Apache 服务

service httpd graceful

重新执行之前遇到问题的操作,比如在 WordPress 中导入文章,应该就正常了。©

本文发表于水景一页。永久链接:<https://cnzhx.net/blog/wordpress-importer-blank-page/>。转载请保留此信息及相应链接。

时间过去太久,评论已关闭。
如果您有话要说,请到讨论区留言并给出此文章链接。
谢谢您的理解 :-)