WordPressの管理画面でWordPressアドレス(URL)とサイトアドレス(URL)のURLを変更したら、管理画面が表示できなくなった問題

WordPressの管理画面の設定で、試しにWordPressアドレス(URL)とサイトアドレス(URL)のURLをhttpからhttpsに変更したら、管理画面が表示されなくなってしまいました。その時の解決方法について説明しています。

※ 本ページはプロモーションが含まれています。

目的と動作環境

最終更新日:2021/12/30

WordPress(ワードプレス)の設定画面(ダッシュボード)の「設定」->「一般設定」で、「WordPress アドレス (URL)」と「サイトアドレス (URL)」のURLを、試しにhttpからhttpsに変更してみたら(別にサイトをssl化した訳でもないのに…)、管理画面が表示されなくなってしまい何もできなくなってしまいました。
WordPressのアドレスをhttpsに変更したら管理画面が表示できなくなった

とりあえずhttpsからhttpへ戻したいけど、管理画面が表示できないからどうする事もできない。その時にエラー解決のために試した事について書いていきます。

■環境は以下の通りです
WordPress:5.8
ウェブサーバ:Apache2.4
PHP:7.4
MariaDB:10.6
*Apache,PHP,MariaDB,WordPressは全てコマンドからインストールしてWordPress環境を構築しています。
WordPress環境構築サイトマップ

試したOS環境は2つで、ec2のAmazon Linux2とCentOS7(ローカルのvagrant)です。
・ec2(Amazon Linux 2)

$ cat /etc/system-release
Amazon Linux release 2 (Karoo)
・CentOS7.9
$ cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)

別ページでさくらインターネットのレンタルサーバ上でWordPress環境を構築する説明をしていますので、よろしければ参考にしてみてください。
さくらのレンタルサーバで独自ドメインでWordPressを始める

さくらのレンタルサーバは、WordPressのクイックインストール機能がありますし、Apache、PHP、MySQLなども最初からインストールされていて、基本的にセキュリティ面で注意したり、メンテナンスの手間をかける必要もないので、WordPress環境を手っ取り早く構築して始めたい人や、サーバやネットワークの知識があまりない初心者、入門者の人にもお勧めです。

まずネットで調べる

まずこの問題についてネットで調べていたら、.htaccessファイルの設定の問題という情報が結構あったので、自分の場合も.htaccessの設定が変更されているかもしれないと思って.htaccessを調べてみました。けど、自分の場合は.htaccess内でhttp/httpsの設定をしていなかったので関係なさそうでした。

ちなみに自分の環境ではWordPressの.htaccessは下の2つしかなかったです(/var/www/html/weblogディレクトリにWordPressの本体をインストールした場合です)

$ find /var/www/html/weblog/ -name .htaccess
/var/www/html/weblog/wp-content/plugins/akismet/.htaccess
/var/www/html/weblog/.htaccess

WordPressのDBのサイトURLのデータを修正する

これはもうデータベースの問題だなと思い、DBにURLのデータがあるだろうから、そのURLを直接httpsからhttpに更新してあげれば直るかもしれないと当たりをつけてDBを調べてみる事にしました。

以下、MariaDBのプロンプト上の処理です。
まずはWordPressのDBを選択して、テーブル一覧を表示します。
(*wp-testdbは私の環境のWordPressのデータベース名です。)

MariaDB [(none)]> use wp-testdb;

MariaDB [wp-testdb]> show tables;
+-----------------------+
| Tables_in_wp-testdb   |
+-----------------------+
| wp_commentmeta        |
| wp_comments           |
| wp_links              |
| wp_options            |
| wp_postmeta           |
| wp_posts              |
| wp_term_relationships |
| wp_term_taxonomy      |
| wp_termmeta           |
| wp_terms              |
| wp_usermeta           |
| wp_users              |
+-----------------------+
12 rows in set (0.001 sec)

テーブルの中のデータを色々と見ていたら、wp_optionsテーブルにサイトアドレスのurlの情報を発見しました。

MariaDB [wp-testdb]> describe wp_options;
+--------------+---------------------+------+-----+---------+----------------+
| Field        | Type                | Null | Key | Default | Extra          |
+--------------+---------------------+------+-----+---------+----------------+
| option_id    | bigint(20) unsigned | NO   | PRI | NULL    | auto_increment |
| option_name  | varchar(191)        | NO   | UNI |         |                |
| option_value | longtext            | NO   |     | NULL    |                |
| autoload     | varchar(20)         | NO   | MUL | yes     |                |
+--------------+---------------------+------+-----+---------+----------------+
4 rows in set (0.001 sec)

MariaDB [wp-testdb]> select option_id,option_name,option_value from wp_options where option_id = '1' or option_id = '2';
+-----------+-------------+------------------------------+
| option_id | option_name | option_value                 |
+-----------+-------------+------------------------------+
|         1 | siteurl     | https://192.168.33.10/weblog |
|         2 | home        | https://192.168.33.10/weblog |
+-----------+-------------+------------------------------+
これをhttpsからhttpへ変更します。
MariaDB [wp-testdb]> update wp_options set option_value = 'http://192.168.33.10/weblog' where option_id = '1';
MariaDB [wp-testdb]> update wp_options set option_value = 'http://192.168.33.10/weblog' where option_id = '2';

MariaDB [wp-testdb]> select option_id,option_name,option_value from wp_options where option_id = '1' or option_id = '2';
+-----------+-------------+-----------------------------+
| option_id | option_name | option_value                |
+-----------+-------------+-----------------------------+
|         1 | siteurl     | http://192.168.33.10/weblog |
|         2 | home        | http://192.168.33.10/weblog |
+-----------+-------------+-----------------------------+

これでWordPressの管理画面にアクセスしたら、無事表示されてまた使えるようになりました!
URLのhttp/httpsだけでなく、管理画面で「WordPress アドレス (URL)」と「サイトアドレス (URL)」を間違ったurlに変更して管理画面やWordPress本体の表示ができなくなったら、wp_optionsテーブルのsiteurlとhomeのoption_valueを修正すれば元に戻せそうです。