WordPressのセキュリティ対策として知られている「All-in-One WP Security(AIOS)」をインストールした直後、サイトが突然真っ白になりました。
管理画面にもアクセスできなくなり、ブラウザには「Warning」や「Fatal error」といった英語のエラーが表示されていました。
プラグインを追加しただけのタイミングで発生したため、少し驚きましたが、原因を確認し、無事に解決することができました。
発生したエラー内容
プラグインを有効化した直後に、ブラウザ上で次のようなエラーメッセージが表示され、サイト全体が開けなくなりました。
Warning: Unknown: Failed to open stream: No such file or directory in Unknown on line 0
Fatal error: Failed opening required '/home/example/public_html/sample-site/aios-bootstrap.php' (include_path='.:/opt/php-8.2.28-2/data/pear') in Unknown on line 0
内容を見ると、「aios-bootstrap.php というファイルを読み込もうとしたが、見つからなかった」という意味になります。
実際にサーバーを確認しても、そのファイルは存在していませんでした。
原因:AIOSが作成する自動読み込み設定が残っていたこと
All-in-One WP Security(AIOS)は、有効化した際にサイト直下へ aios-bootstrap.php というファイルを自動的に作成し、
PHPの自動読み込み設定(auto_prepend_file)を使って、毎回そのファイルを読み込むように設定します。
この設定は .user.ini というファイルに自動で追加される仕組みになっています。
ただし、環境によっては aios-bootstrap.php の作成がうまくいかない場合があります。
その場合、設定だけが残り、存在しないファイルを読み込もうとしてエラーが発生します。
今回のケースも同じく、ファイルの生成に失敗し、設定が残ったことが原因でした。
対処方法:.user.ini の auto_prepend_file を削除する
サイトのルートディレクトリ(例:/home/example/public_html/sample-site/)にある .user.ini を確認したところ、
次のような記述が残っていました。
auto_prepend_file=/home/example/public_html/sample-site/aios-bootstrap.php
この行が、存在しないファイルを無理に読み込もうとしていた原因です。
そこで、該当の1行を削除、または空に書き換えました。
auto_prepend_file=
ファイルを保存後、しばらく時間を置いて再読み込みを行うと、サイトが正常に表示されるようになりました。
PHP-FPMやOPcacheの設定によっては、反映までに少し時間がかかることがありますが、特別な操作をしなくても自動的に反映されます。
再発防止と補足
AIOSは非常に便利なプラグインですが、この auto_prepend_file の設定はPHPの実行前に必ず読み込まれるため、
指定されたファイルが存在しない場合は即座にエラーになります。
再インストールを行う場合は、
aios-bootstrap.phpが正しく生成されているかどうか.user.iniに記載されたパスが実際のサーバー構成と一致しているかどうか
を確認しておくことが大切です。
同じような現象が再び発生した場合は、今回と同様に .user.ini の auto_prepend_file の行を削除することで復旧できます。
また、AIOSの「PHPファイアウォール(auto_prepend_fileを利用する機能)」を無効化し、.htaccess ベースで運用する方法もあります。
環境や構成に応じて、より安定した運用方法を選ぶと良いと思います。
まとめ
今回のケースは、プラグインの不具合ではなく、設定ファイルが中途半端に残ったことによって発生したものでした。
真っ白な画面が表示される場合は、WordPress自体ではなく、サーバー側の設定ファイル(.user.ini や .htaccess)に原因があることがあります。
システムの仕組みを少し理解しておくと、同様のトラブルにも落ち着いて対応できると感じました。
コメントを残す