公開日2024.10.31
最終更新日2024.10.28
無事に最大アップロードサイズを増やしてページのインポートが完了。
WordPressのダッシュボードにアクセスしようとした時。ユーザー名やパスワードを入力するフォームはあるもののログインボタンのない、スクショのようなエラーが表示されてしまいました…。
設定完了まであと少しなのに、何とか対処したいとトラブルシューティングを見たらそんなに苦もなく解決することができました。
同じ問題が出た方がいれば参考にしてみてください。
手順は以下の通りです。
- phpMyadminを開いて、wp_options テーブルを表示
- option_name カラム (フィールド) で active_plugins という行を見つける
- option_value フィールドの値を a:0:{} に変更する※該当箇所だけ変更
環境
トラブルが起きた環境はこちらです。
- Windows11
- xampp(WordPressの環境構築完了済)
- WordPressに、「All-in-One WP Migration」インストール済
- テキストエディタはVSCodeを使用
前作はこちらです。
Fatal errorの文字・原因の特定
インポートが完了してページを遷移すると、インポート後はログイン画面へ移動します。
通常であればユーザー情報を入力する画面が表示されるはずが、以下のようなメッセージが。
Fatal error: Uncaught Error: Call to undefined function imagecreatetruecolor() in C:\xxxx\xxxx\xxxx\wp-content\plugins\siteguard\really-simple-captcha\siteguard-really-simple-captcha.php:181
……
略
……
C:\xxxx\xxxx\xxxx\wp-content\plugins\siteguard\really-simple-captcha\siteguard-really-simple-captcha.php on line 181
このサイトで重大なエラーが発生しました。対応手順については、サイト管理者のメール受信ボックスを確認してください。
WordPress のトラブルシューティングについてはこちらをご覧ください。
https://ja.wordpress.org/support/article/faq-troubleshooting/
あともう少しだったのに…。
文字の羅列で尻込みしてしまいますが、エラーの内容をよくチェックします。
よく見てみると私が遭遇したエラーの場合は、「plugins」や「siteguard」の文字が見えます。
プラグインの「siteguard」に原因がある様子。該当のプラグインを止めてしまえば、不具合が解消できそう。
エラーの末尾、トラブルシューティングのページを見ると、「phpMyAdmin を使って、すべてのプラグインを無効化できます。」とあります。なるほど。
早速やってみましょう。
phpMyadminを開く
xamppの場合は、コントロールパネルの、MySQLの項目、「Admin」のボタンをクリックするとphpMyadminにアクセスすることができます。
他にも、xamppやdockerなどの開発環境を起動した状態で、webブラウザのアドレスバーで検索するとアクセスできます。
http://localhost/phpmyadmin/
http://localhost:〇〇〇/phpmyadmin/(〇〇〇のところに設定したポート番号)
開いた画面はこんな感じ
wp_options テーブルを探す
phpMyadminを開いたら、WordPress環境構築時に作成したデータベースを左の一覧から探してクリックします。データベース内のテーブルが一覧で表示されます。
一覧から「wp_options」を探しましょう。見つけたらクリック。
すると、wp_optionsテーブルの情報が表示されます。
option_name カラムがactive_plugins という行を探す
wp_optionsテーブルを開いたら、option_nameカラム(列)がactive_pluginsという行を見つけます。この時、目で見て探すのは行数が多すぎて大変なので、SQLを使うとサクッと見つけられます。
SQLのタブをクリックして、SQL文の入力画面を表示させます。
表示させたら、以下のようにSQL文を書き換えます。
SELECT * FROM `wp_options` WHERE `option_name` = "active_plugins";
この時、画面の中のボタンでも操作可能です。
画面下の「実行」ボタンをクリックします。
そうすると、active_pluginsの情報が入っている行が見つかります。
option_valueの値を書き換える
あともう少し。
見つかった行を「編集」して終了です。
「編集」ボタンを押して編集画面に移動します。option_valueの値を書き換えていきます。
値には、a:*(数字):{…………}と…の中に同じような情報が複数入ってますね。一番簡単なやり方はa:0:{}に書き換えてすべてのプラグインを無効化する方法です。
でもそうすると、必要なプラグインも止めてしまってあとでダッシュボードから全部のプラグインを有効化しないといけない…。ならいらない情報だけ消してしまえばよいです。
書き換える時は、まず「a:*(数字):{………}」の先頭の数字を削除するプラグインの数だけマイナスします。今回は、siteguardというプラグインだけを消すので1マイナスとなります。
次に、{………}の中のいらない情報を消します。一つ一つのプラグインの有効化の情報は「i:1;s:21:”polylang/polylang.php”;」という形でiから始まり;で終わっています。無効化にしたいプラグインの情報を消します。
今回は、「i:18;s:23:”siteguard/siteguard.php”;」この情報を消します。
前後の文字を消さないようによく注意してくださいね。
数字を変えて、{}の中の情報を編集し終えたら、画面右下の「実行」をクリックして終了です。
ログインできるか確認
ログイン画面へ移動してみましょう…。
http://localhost/wp-login.php
http://localhost:〇〇〇/wp-login.php(〇〇〇のところに設定したポート番号)
エラーが解消されて、ログインできるようになってますね…!
これでやっとWordPressを操作できます!
さいごに
今回は、プラグインの不具合でログインできない問題だけを解消しましたが、この段階ではなんでエラーが起きたかわかりません。
複数のプラグインで問題が起きている場合は、全部無効化してから一つずつプラグインを有効化して言って原因を探っていくことになると思います。
あきらめずに頑張って対処していきましょう。