約8年前の記録が別のWordPressサーバーに置いたままになっているのを偶然見つける事が出来ました。
その記事をエクスポートとした後、このサーバーにインポートしようとしたところ、WordPress インポーターが以下のエラーを吐いて停止しました。解決は簡単なので、無視しようと思っていたら、WordPress がご丁寧にメールでレポートしてくれるものだから、このメモを残す事にしました。
こんにちは! WordPress 5.2から、サイトでプラグインやテーマが致命的なエラーを発生させた場合にそれを検知してこの自動メールでお知らせする機能が追加されました。 今回の場合、WordPress がプラグイン WordPress Importer でエラーを捉えました。
エラーの内容は、
エラータイプ E_ERROR が /notes/wp-content/plugins/wordpress-importer/parsers.php ファイルの 61 行目で発生しました。 エラーメッセージ: Uncaught Error: Class ‘DOMDocument’ not found in /notes/wp-content/plugins/wordpress-importer/parsers.php:61
です。
今年の1月にサーバーを移行してからインポーターを使うのは初めてなので、インポートに必要なPHPモジュールが入っていない事に気付いていませんでした。
「Class ‘DOMDocument‘ not found」と出ているので、DOMが入っているのかどうかを確認。実際には、php72-dom モジュールが入っていないため、これを入れてやる事で解決出来るはず。
pkg コマンドで、php72-dom をインストール。その後、Apacheを再起動。
# pkg install php72-dom Updating FreeBSD repository catalogue... FreeBSD repository is up to date. All repositories are up to date. The following 1 package(s) will be affected (of 0 checked): New packages to be INSTALLED: php72-dom: 7.2.19 Number of packages to be installed: 1 54 KiB to be downloaded. Proceed with this action? [y/N]: y [1/1] Fetching php72-dom-7.2.19.txz: 100% 54 KiB 55.3kB/s 00:01 Checking integrity... done (0 conflicting) [1/1] Installing php72-dom-7.2.19... [1/1] Extracting php72-dom-7.2.19: 100% # service apache24 restart Performing sanity check on apache24 configuration: Syntax OK Stopping apache24. Waiting for PIDS: 40321. Performing sanity check on apache24 configuration: Syntax OK Starting apache24.
これで、WordPressインポーターが動くようになりました。
プラグインに必要なPHPモジュールは手動インストールしないといけないようです。