※ 初出:2021年2月の記事をリライト。
「Contact Form 7をインストールしたら画面が真っ白になった!」——そんな経験、ありませんか?WordPressを15年以上使ってきた私でも、これには焦りました。ダッシュボードにログインすらできない状態。でも、ちゃんと解決できます。この記事では、エラーの原因と対処法をまるごとお伝えします。
Contact Form 7をインストールしたら画面が真っ白に!HTTP ERROR 500の衝撃
あるサイトにContact Form 7をインストールした瞬間、こんなメッセージが。
「このページは動作していません。
www.●●●●●.com では現在このリクエストを処理できません。」
HTTP ERROR 500


「プラグインを更新すると真っ白になることがある」とは聞いていたものの、いざ自分に降りかかると……とほほ、です。他のサイトでは何の問題もなく動いているのに、なぜ?
まず応急処置!FTPでプラグインのフォルダ名を変更する
ダッシュボードにアクセスできない状態では、WordPressの管理画面からプラグインを無効化することができません。そこで登場するのがFTPソフト。サーバーに直接ログインして、問題のプラグインフォルダの名前を変えてしまいます。
私が使っているのは「WinSCP」です。無料で使えるWindows向けのFTPソフトで、操作もシンプル。登録方法や使い方はこちらの記事で詳しく解説しています。
WordPressのバックアップに定番のWinSCPを使ってみよう!!

プラグインのディレクトリを探す
「500 Internal Server Error」の原因がプラグインとわかっているなら、対象フォルダの名前を変えるだけでサイトは復活します。まずはWinSCPでサーバーにログインして、プラグインのフォルダへ移動しましょう。
■ プラグインのディレクトリの場所:/wp-content/plugins/

Contact Form 7フォルダの名前を変える(リネーム)
エラーの原因となったプラグイン「contact-form-7」フォルダを見つけたら、名前を変更します。

フォルダを右クリックして「名前の変更」を選ぶだけ。「contact-form-7-old」などわかりやすい名前にしておくと、後で元に戻すときも迷いません。

これだけで、WordPressがそのプラグインを認識できなくなり、サイトが復活します。

原因はWordPressのバージョン!Contact Form 7との相性問題
応急処置でサイトが戻ったとして、なぜエラーが起きたのかは知っておきたいですよね。他のサイトでは問題なく動いていたのに、なぜこのサイトだけ?
原因その1:他のプラグインとの干渉を疑う
「重大なエラーが発生したのでインストールできません」というメッセージが出たとき、最初は他のプラグインが邪魔をしているのかと思い、すべて無効にしてから再インストールしました。ところが——画面が真っ白に。
つまり、プラグインの干渉が原因ではなかったのです。むしろ、他のプラグインが「オカシイよ」と止めてくれていたのかもしれません。それを全部無効にしたことで、すんなりインストールできてしまった……というオチでした。
原因その2:WordPressのバージョンが古すぎた
ダッシュボードの「概要」でWordPressのバージョンを確認すると……「WordPress 4.9.16」。
Contact Form 7は、ある時期からWordPress 5.0以上を前提としたバージョンアップを進めています。古いWordPress(4系)に最新のContact Form 7を入れようとすれば、互換性がなくて当然のことでした。
※WordPressのバージョンアップ前には、必ずバックアップを!プラグインのエラーでデータが消えては大変です。

バックアッププラグインのエラーに悩んだことがある方は、こちらも参考にどうぞ。
解決!!BackWPupでバックアップ・エラー発生の対処方法
WordPressを最新版にしてからContact Form 7を再インストール
WordPressを最新バージョンにアップデートしてから、改めてContact Form 7をインストールします。ダッシュボード → プラグイン → 新規追加 で「Contact Form 7」と検索するだけ。

今度は無事インストールできました。やっぱり原因は、古いWordPressとの互換性だったようです。
Contact Form 7でメールが届かない!送信エラーの原因と解決策
インストールはできた。でも——フォームから送信してもメールが届かない、という別の問題が発生することがあります。
当ブログ以外でも「お問い合わせフォームから送信できない」「受信していない」という報告は多いようです。しばらく正常に機能しない状況が続いていたので、原因をじっくり調べてみました。
メールが届かない原因を探る:設定をよく見てみると
届かないContact Form 7の設定画面をじっくり見てみると、デフォルトの設定と微妙に違う部分がありました。
デフォルトの宛先設定:[_site_admin_email]
![Contact Form 7のメール設定画面。宛先に[_site_admin_email]が設定されているデフォルト状態](https://www.himetei.jp/wp-content/uploads/2021/02/コンタクトフォーム.jpg)
この [_site_admin_email] は、ダッシュボード → 設定 → 一般 にある「管理者のメールアドレス」を自動で参照するタグです。
届かなかった設定はこれでした
「管理者メール」と「お問い合わせの受信メール」を別々にしたくて、直接メールアドレスを書き込んでいました。

[_site_admin_email] は管理者メールアドレス(ダッシュボード → 一般設定)を参照しています。

管理者メールアドレスとContact Formの受信アドレスを別々にしていたことが、届かない原因だったようです。
解決!デフォルトの[_site_admin_email]に戻したら届いた
Contact Form 7を一旦削除して再インストールし、宛先をデフォルトの [_site_admin_email] のまま使うようにしたところ、追加プラグインなしで届くようになりました。
※もし届かない場合は、迷惑メールフォルダも確認してみてください。意外とそこにいることがあります。
どのプラグインが原因かわからないときの調べ方
今回はContact Form 7が原因とわかっていたのでスムーズでしたが、「どれが悪さしているのかわからない」場合もありますよね。そんなときの手順をまとめておきます。
全プラグインのフォルダ名をまとめて変更する
WinSCPで /wp-content/plugins/ にアクセスし、「plugins」フォルダ自体の名前を変えてしまう方法が手っ取り早いです(例:plugins_old)。
これでWordPressがすべてのプラグインを認識できなくなり、ダッシュボードにログインできるようになります。

フォルダ名を戻して、一つずつ有効化して犯人を特定
ログインできたら、再度サーバーにアクセスしてフォルダ名を元の「plugins」に戻します。ダッシュボードに戻ると、全プラグインが「無効」状態になっているので、ひとつずつ有効化。どれを有効にした瞬間にエラーが再現するか——それが原因プラグインです。
地道な作業ですが、これが一番確実な特定方法。変更前のフォルダ名は必ずメモしておきましょう。
あとがき
今思い返すと、「重大なエラーが出ました」というメッセージは、WordPressが「このバージョンのままじゃ危ないよ」と警告してくれていたんですよね。
それを無視して全プラグインを無効にして強行インストールしたから、「うげ!」となった…わけです。

WordPressのアップデートは「面倒だから後で」と後回しにしがちですが、プラグインとの互換性という観点からも、こまめにバージョンを上げておくことが大切だと痛感しました。
【この記事の教訓】WordPressの警告は、無視してはいけない。


コメント