マルチサイトをテスト用に下層で作成した後、ルートに変更する必要がある案件がありまして。マルチサイトは情報が少なめなので、慎重に手作業でwp-config.phpの修正をし、データベースの修正を行ったところ、正しい接続情報を設定しているにも関わらず、データベース確立エラーが吐き出されました・・・ショック。
データベースの変更箇所は主に下記です。
シングルサイトの場合に見かけないテーブルなので、慣れた方が見ると予想がつきます。
テーブル名 | 対象の値 |
---|---|
wp_options | option_name「siteurl」のoption_valueの値 |
wp_〇〇_options(サイトごと) | option_name「siteurl」のoption_valueの値 |
wp_blogs | domainの値 |
wp_site | domainの値 |
wp_sitemeta | meta_key「siteurl」のmeta_valueの値 |
wp_usermeta | meta_key「source_domain」のmeta_valueの値 |
あまりないエラーケースなので、調査開始です。
下記のサイトに答えがありました!!
https://ht79.info/2018/01/10/wordpress-multisite-database-connection-error/
wp-includes/ms-load.php の ms_load_current_site_and_network のところで、アクセスしてきたURLがwp_blogsテーブルのdomainとpathにマッチするかチェックしています。
wp_blogs テーブルの、domain と path を確認する。ここが間違っていました。
同じようなことが起こった場合は、
wp_blogs のdomain と path を確認したところ、domainは「●●.com」であっていましたが、pathに「/フォルダ名/」という余計なものが残ったままでした。これを外したところ、無事データベース接続できました。