WordPressの設定を変えたらログインできなくなった!
ログインできないから管理画面にもいけない!
元に戻したいんだけどどうしたらいいの?
ブログのURLを変えるためにWordPressの設定画面にある「WordPressアドレス」や「サイトアドレス」を変更したとき、おかしな設定にしてしまうとログインできなくなったり、ブログが正常に表示されなくなったりします。
「今までの記事は消えてしまわないか?」
「元に戻せるのか?」
焦ってしまう状況ですが大丈夫です。
この記事を読めばきっと復旧させることができます。
設定画面の項目を変更しただけであれば記事のデータは残っています。
設定がおかしくなったせいでうまく表示されない状況に陥っているだけです。
その設定値を正しいものに修正することで復旧させることができます。
実際に私がテスト環境で試してみて無事に復旧できた手順なのでぜひ試してみてください。
パスワードを忘れてしまってログインできなくなったときにはこちらの記事が参考になるかと思います。
3つの対処法
対処法としては3つあります。
- データベース管理ツール(phpMyAdminなど)を使用してデータベース内の値を変更する
- サーバーにSSHでログインしてSQLコマンドを使用してデータベース内の値を変更する
- wp-config.phpに正しい設定値を書き込んで既存の値を上書きする
作業の際「DBホスト名」「DBユーザー名」「DBユーザーパスワード」「DB名」が必要になります。
レンタルサーバー業者から提示されていたり、WordPressインストール時に自ら決めたりしているものになります。
WordPressにログインする際のものとは別のものなのでご注意ください。
サーバー環境や各人のサーバー管理スキルによって作業の難易度は変わりますが、一般的なレンタルサーバーを使ってブログを運営している方であればデータベース管理ツールを使うのが一番簡単だと思います。
phpMyAdminを使って修正する
レンタルサーバーに最初からインストールされていることが多いphpMyAdminを使ってデータベース内の値を変更する方法を解説します。
レンタルサーバー業者からアドレスが提示されていたり、サーバーのコントロールパネルなどにあるリンクからアクセスすることが可能です。
正常にアクセスできるとログイン画面が表示されます。
各項目に必要な情報を入力していきます。
項目 | 入力する値 |
---|---|
サーバ | DBホスト名 |
ユーザ名 | DBユーザー名 |
パスワード | DBユーザーパスワード |
「サーバ」の項目がない場合は自動的に最適なDBホストに繋がります。
入力したら「ログイン」をクリックします。
左ペインでWordPress用データベースを選択し、修正対象となる「wp-options」テーブルを選択します。
「option_name」の値が「siteurl」になっている行の「option_value」の値をダブルクリックすると編集できる状態になりますので正しい値を入力します。
同様に、「option_name」の値が「home」になっている行の「option_value」の値も正しいものに修正します。
以上で修正は完了です。
SQLコマンドを使って修正する
サーバーにSSHでログインしてSQLコマンドを使ってデータベース内の値を変更する方法を解説します。
SSHでログインする方法が分からない場合はこちらの記事を参考にしてください。
ターミナルソフトなどを使ってサーバーにSSHでログインします。
# コマンド書式
# ssh {アカウント名}@{サーバー名}
# コマンド例
ssh test@hogehoge.com
公開鍵認証などを使っている場合は適宜オプションを追加してログインします。
サーバーにログインできたら次はDBに接続します。
# コマンド書式
# mysql -h {DBホスト名} -u {DBユーザー名} -p{DBユーザーパスワード} {DB名}
# mysql -h {DBホスト名} -u {DBユーザー名} -p {DB名} ←この書式はコマンド入力後、パスワードを聞かれる
# コマンド例
mysql -h mysql.hogehoge.com -u exampleuser -pexamplepass exampledb
mysql -h mysql.hogehoge.com -u exampleuser -p exampledb
-pと共にDBユーザーパスワードを指定する場合、-pとDBユーザーパスワードの間に空白を入れるとエラーになりますのでご注意ください。
DBヘの接続が完了するとプロンプトが変わります。
データが格納されているテーブルの中から実際に修正するレコードを特定します。
select * from wp_options where option_name in ('siteurl', 'home');
下記のように2つ出力されます。
もしもそれよりも多く出てきた場合は別の問題が発生している可能性が高いので詳しい方にサポートをお願いしてください。
# 閲覧するデバイスやブラウザによっては体裁が崩れてしまいます
# あらかじめご了承ください
+-----------+-------------+---------------------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+-------------+---------------------------+----------+
| 2 | home | https://hogehoge.com/blog | yes |
| 1 | siteurl | https://hogehoge.com/blog | yes |
+-----------+-------------+---------------------------+----------+
「option_id」の値が重要になります。
修正用のコマンドを実行する際に使いますのでメモしておいてください。
上記の2つのレコードを修正します。
option_idは上記でメモした値だけを使ってください。
# コマンド書式
# update wp_options set option_value = '{正しい値}' where option_id = {オプションID};
# コマンド例
update wp_options set option_value = 'https://hogehoge.com' where option_id = 1;
update wp_options set option_value = 'https://hogehoge.com' where option_id = 2;
修正したら内容を確認し、問題なければDBとの接続を終了します。
select * from wp_options where option_name in ('siteurl', 'home');
# 閲覧するデバイスやブラウザによっては体裁が崩れてしまいます
# あらかじめご了承ください
# 出力例
+-----------+-------------+----------------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+-------------+----------------------+----------+
| 2 | home | https://hogehoge.com | yes |
| 1 | siteurl | https://hogehoge.com | yes |
+-----------+-------------+----------------------+----------+
exit;
以上で修正は完了です。
wp-config.phpを修正して既存の値を上書きする
WordPressをインストールしたディレクトリにある「wp-config.php」を修正してDBから読み込んだ値を上書きして復旧させる方法を解説します。
修正したファイルをどうやってサーバー側に反映させるのかは人によって異なると思います。
レンタルサーバーに実装されているファイルマネージャー的なものを使う方もいれば、FTPやSFTPなどでお使いのPCから転送する方もいるでしょう。
サーバーにSSHでログインして直接ファイルを修正する方もいるかもしれません。
ですからファイル編集の細かい手順は割愛させていただきます。
修正するポイントを述べさせていただきます。
wp-config.phpをエディタで開き、下記の内容を追記します。
追記する場所は「define(‘WP_DEBUG’,…」から始まる行の下辺りがいいかと思います。
define('WP_SITEURL', 'https://hogehoge.com');
define('WP_HOME', 'https://hogehoge.com');
「https://hogehoge.com」の部分に正しい値を入力します。
尚、wp-config.php内に「Windowsのメモ帳では編集しないこと」というコメントが入っています。
メモ帳を使った場合、文字コードの関係で文字化けが発生する可能性がありますのでご注意ください。
以上で修正は完了です。
以上、3つの対処法を解説しました。
上記のいずれかの対応を行えばログインできるようになるはずです。
修正の対象となっていない項目を修正してしまうと更なる状況の悪化を招くことになります。
くれぐれもご注意ください。
また、修正作業はご自身の責任において実施してください。
「WordPressアドレス」と「サイトアドレス」
WordPressの一般設定画面には「WordPressアドレス(URL)」と「サイトアドレス(URL)」、似たような項目が2つあります。
この項目の意味を簡単に説明しておきます。
WordPressアドレス
WordPressがインストールされたディレクトリに到達するためのURLです。
具体的にはブログの管理者が管理画面などにアクセスする際にブラウザのURL欄に打ち込むURLになります。
サイトアドレス
ブログに到達するためのURLです。
具体的にはブログを訪問する際にブラウザのURL欄に打ち込むURLになります。
項目と設定値の関係
設定画面で値を変更した場合、実際にはどこが変わるのかを表にまとめました。
項目 | 設定値 |
---|---|
設定画面「WordPressアドレス(URL)」 | wp_optionsテーブル内option_name=’siteurl’のoption_value |
設定画面「サイトアドレス(URL)」 | wp_optionsテーブル内option_name=’home’のoption_value |
wp-config.php「WP_HOME」 | wp_optionsテーブル内option_name=’home’のoption_valueを上書き |
wp-config.php「WP_SITEURL」 | wp_optionsテーブル内option_name=’siteurl’のoption_valueを上書き |
設定画面の項目名とwp_optionsテーブル内のoption_nameの値の関係がちょっと混乱しそうですね。
サイトアドレス(URL)だったら’siteurl’の方がいいように感じてしまいます。
まとめ
今回は設定変更に起因してログインできなくなってしまったときの対処法について解説しました。
まずは深呼吸して、落ち着いて作業をすればきっと元に戻せますので試してみてください。
コメント