Tips

WPサイト移行で「PHP Fatal error: Cannot declare class AIOWPSecurity_Utility_File」

概要

WordPressで構築したサイトを All-in-One WP Migration を利用して移行中にAll In One WP Security & Firewallに関するエラーが発生しました。

前提

・WordPress 6.2.2
・All In One WP Security & Firewall 5.1.9
・All-in-One WP Migration 7.76

現象

サイトの丸ごとコピーをしてステージング環境を作成していました。(サブドメインが違う)
All in One WP Migrationで元サイトをエクスポートし、ステージングサイトにインポートしていました。
今回のエラーのせいかわかりませんが、インポートはいつまでたっても終わらず、サイトのフロントページを見ると「重大なエラー」となる状態。

インポート中のブラウザタブと別に管理画面にはログインできたのですが、下記エラーが表示されます。

PHP Fatal error: Cannot declare class AIOWPSecurity_Utility_File, because the name is already in use in /…略…/wp-content/plugins/all-in-one-wp-security-and-firewall/classes/wp-security-utility-file.php on line 6

プラグインのファイル(/wp-content/plugins/all-in-one-wp-security-and-firewall/)を削除して、新規でプラグインをダウンロードしてみましたがやはり同じエラーが出ます。

解決

いろいろ検索してみたら下記ページにたどり着きました。

/path/to/wp-content/uploads/aios と /path/to/wp-content/mu-plugins/aios-firewall-loader.php ファイルを削除したのち、All In One WP Security & Firewallプラグインを有効化

上記を実行すると正常にプラグインが有効化できました。

.htaccessはカラの状態ですので、WPセキュリティの設定で再出力します。(その前に一部設定が消えている可能性があるので、元サイトから設定をエクスポートし、先サイトへインポートするのが良いと思います。)

補足情報

この不具合は次のバージョンで修正予定だそうです。

reiko suzuki
OLD SKOOLシステムエンジニア。ねこを撫でながら働いています。