突然の自サイトへアクセス不可!
こんにちは!カモトラです。
wordpressで作成したサイトへアクセスができなくなるという現象が発生しました。
表示された文言は以下の通り。一般公開されているページはもちろん、管理画面へアクセスした場合にも同じ画面が表示されてしまいます。
※こちらのサイトでは、wordpressディレクトリを「www/wp」配下に設定しています。
エラー内容
出力されているエラーは2件。
1件目は、「wp-includes」ディレクトリのファイル「wp-db.php」がありませんよ!という内容。
2件目は、「wp-includes」ディレクトリのファイル「wp-db.php」を開くのに失敗しました!という内容。
2件とも、「wp-includes」ディレクトリのファイル「wp-db.php」が存在しないことで発生しているようです。
調査してみた
「wp-includes」ディレクトリを見てみたが、「wp-db.php」は存在しています。特に変わった様子はありません。
エラー内容と
サイトに何度かアクセスしていると、突然「wp-db.php」が表示されなくなり、代わりに「wp-db.php.suspected」というファイルが表示されるようになりました。エラーメッセージの通り、「wp-db.php」は存在しない状況です。
詳しくは調べていませんが、キャッシュが残っていて古い情報が表示されていたのかもしれません。
解決に向けて
正しいファイルが存在しないようなので、「wp-db.php.suspected」を「wp-db.php」に名称変更すれば良いのかというと、そういうわけではありません。ファイル名についている「suspected」が示す通り、これは怪しいファイルです。wordpressが「怪しいファイルがあるぞ!」と判断し、自動で名称変更してれくているわけです。それを元に戻すわけには行きません。
じゃあ、どうするか。
「ファイルを元に戻す作業」を行います。
少し面倒ですが、同じバージョンのwordpressを、https://ja.wordpress.org/releases/からダウンロードしてください。zip版、tar.gz版のいずれでもよいです。自身の環境に合わせてダウンロードしてください。
ダウンロードしたファイルを解凍すると「wordpress/wp-includes」フォルダ配下に「wp-db.php」があると思いますので、それをサーバ上の「wp-includes」ディレクトリ配下にコピーして下さい。
これで完了です。
サイトや管理画面にアクセスし、正常にアクセスできることを確認してください。
余談
なぜサーバ上のファイル(今回の場合だと、「wp-includes/wp-db.php」)がおかしなことになってしまったのか。考えられるのは、管理画面のパスワードを破られて不正アクセスされてしまったということです。
もちろん、他の可能性も考えられますが、もしも簡単なパスワードを設定しているようでしたら、こういった機会にパスワードを強固なものに変えることをオススメします。
カモトラは以下のように変更しました。
変更前:8文字(アルファベット大文字・小文字の組み合わせ)
変更後:14文字(アルファベット大文字・小文字、数字、記号の組み合わせ)