wp-login.phpが500 Internal Server Errorでログインできない

ログインしようとすると500 Internal Server Error

手元のスマホでログインしようとしたところ、
500エラーが出てログインできず。

結果として、SiteGuard WP Pluginのログインアラートが
悪さをしてました。

エラー発見は、wp-config.phpから

エラー情報をダンプしてくれるとのことで

define('WP_DEBUG', true);

に変更。
これは、通常farceになっていて、
上記のように変更すると内部の細かいエラーとかを
画面上に出力してくれるようになる。

一箇所プラグインが悪さをしてた

本題と関係ないプラグインが悪さをしていたんで、
ささっと削除。

改善せず

どういうこっちゃと頭を抱える。

基本のサーバーログへ

さくらのコントロールパネルに行き
アクセスログの設定

エラーメッセージを読み込む

謎のdead.letter

[******] [cgi:error] [pid ******] [client ******] malformed header from script 'wp-login.php': Bad header: /home/******/dead.letter... , referer: ******

dead.letterはプログラムなどからメールを送信した際に、
送信にミスったときに、蓄積されるところで、
ここに何かしらのメッセージが溜まってるっぽいことがわかる。

犯人発見

それで、そのdead.letterを開いてみると、
最新のメッセージのところに

SiteGuard WP Plugin

とあり、この子が悪さをしていると推測した。

それで設定変更

SiteGuard WP Plugin上で
ログインのメールを飛ばすって項目をオフに変更。

解決

無事にログインできるようになりました。

今回の件で感じたこと

聞きかじりの知識で対応しない

じつは、上記の動きに至るまで
「どうせ、.htaccessが悪さしてんだろ」
なんて考えて、
なかみを消してみたりしてました。
結果、改善せずにやったのが上記の流れです。

デバッグ重要

私がやっているデバッグはシンプルで

  • エラーログを読む
  • 悪さをしているところを潰す
    って流れでやってます。

今回もそれでやれば、
すぐに解決できたなあ、なんて思いました。

人生で重要なことはエラーログから教わった

嘘です。
でも、エラーログは問題解決に必要な情報が
大体の場合は入ってるんで、
いったん覗いてみるくせをつけたほうが良いかもしれません。

以上、手元で発生した
wp-login.phpが500 Internal Server Errorでログインできない事変
の顛末でした。