質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.39%
KUSANAGI

KUSANAGIとは、プライム・ストラテジー社が提供する高速化・最適化された仮想マシンイメージ。高いパフォーマンスと高度なセキュリティが特徴で、サーバーの立ち上げからカスタマイズすることなく、高速なWordPressを利用できます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

3754閲覧

WordPressにて外部のDBを使って接続できるようにしたい。

Tokei6

総合スコア3

KUSANAGI

KUSANAGIとは、プライム・ストラテジー社が提供する高速化・最適化された仮想マシンイメージ。高いパフォーマンスと高度なセキュリティが特徴で、サーバーの立ち上げからカスタマイズすることなく、高速なWordPressを利用できます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

3クリップ

投稿2021/06/20 07:14

編集2021/06/20 07:15

前提・実現したいこと

サーバーBで構築したWPのDBをサーバーAのWPで使いたいです。

以下、説明下手なところがあるかと思いますが、ご助言いただきたいです。

発生している問題・エラーメッセージ

サーバーAでWPを構築し、その後、サーバーBでWPを構築。
色々あって、サーバーBで構築したWPのDBをサーバーAで使用することに。
サーバーAで構築したWPのwp-config.phpにサーバーBで構築したDB情報を記述し、接続したみたが
WPのログインページが表示されるもののログインしようとすると。サーバーBのURLに遷移してしまう。

サーバーAでWP構築までの流れ

【IP情報】
サーバーA:IP_A
接続したDB:DB_A

//WPダウンロード $tar zxvf wordpress-5.7.2-ja.tar.gz //ブラウザに接続し、下記情報でWPをインストール DB名:DB_NAME_A ユーザー名:root パスワード:未入力 DBホスト:DB_A(既存のDBに接続) テーブル接頭辞:wp_(デフォルト)

サーバーBでWP構築までの流れ(KUSANAGIで構築)

【IP情報】
サーバーB:IP_B
接続したDB:IP_B(サーバーBで構築したDB)

//初期設定 $ sudo kusanagi init 設定パスワード:pass_B SSH鍵パスフレーズ:未設定 Webサーバー:Apache※ アプリケーション:PHP7(デフォルト) データベース: MariaDB(デフォルト) Mysqlrootパスワード:pass_B //KUSANAGIのプロビジョニング $ sudo kusanagi provision kusanagi_html ホスト名:IP_B Let’s Encryptの設定⇨スキップ DB名:DB_NAME_A DBユーザー名:USER_B DBパスワード名: メッセージ↓ kusanagi_html のプロビジョニングは完了しました。IP_B にアクセスし、WordPressをインストールしてください! //接続し、下記情報でWPをインストール DB:DB_NAME_A DBユーザー名:root DBパスワード名: DBホスト:IP_B(サーバーBのIP)

設定後、入力したログイン情報でWP画面を確認できた。
URL:サーバーB.com

サーバーB構築したDBをサーバーAで接続したい(使用したい)

サーバーAでサーバーBのDBに接続できるか確認

//サーバーBのmySqlにログイン mysql -u root -ppass_B //サーバーAのIPを登録&権限付与 sql>create user 'root'@'IP_A'; sql>grant all privileges on *.* to root@'IP_A' with grant option; //登録確認 sql>select host, user from mysql.user; +------------+------------+ | host | user | +------------+------------+ | IP_A | root | | IP_B | root | | localhost | root | +------------+------------+ サーバーAの方ででサーバーBのDBに接続確認 $ mysql -u root -h IP_B →接続できた。

サーバーA側のwp-config.phpを修正

<?php 〜省略〜 // ** MySQL 設定 - この情報はホスティング先から入手してください。 ** // /** WordPress のためのデータベース名 */ define( 'DB_NAME', 'DB_NAME_A' ); /** MySQL データベースのユーザー名 */ define( 'DB_USER', 'root' ); /** MySQL データベースのパスワード */ define( 'DB_PASSWORD', '' ); /** MySQL のホスト名 */ define( 'DB_HOST', 'IP_B' );//修正:IP_AからIP_Bに変更 /** データベースのテーブルを作成する際のデータベースの文字セット */ define( 'DB_CHARSET', 'utf8mb4' ); /** データベースの照合順序 (ほとんどの場合変更する必要はありません) */ define( 'DB_COLLATE', '' ); 〜省略〜

ブラウザ上で確認
→WPのログインページが開くがログインしようとするとサーバーBのURLに遷移してしまう。

補足情報(FW/ツールのバージョンなど)

【サーバーA】
Apache/2.4.6 (CentOS)
WordPress 5.7.2
【サーバーB】
nginx/1.21.0
WordPress 5.7.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

単純にサーバーBから(phpMyAdmin等を使って)エクスポートしてサーバーAにインポートするのではダメなのでしょうか?

投稿2021/06/20 17:17

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

サーバーB では、同じデータベースを使う WordPress は稼働するのでしょうか?

サイトBは、データベースだけのサーバーとするのであれば、 functions.php の '<?php` の次行に

update_option( 'siteurl', 'サイトA の URL' ); update_option( 'home', 'サイトA の URL' );

とすることで、WordPress のデータベース内の サイト URL を書き換えます。
ただし、記事内に記載された URL 等は、そのままですので、サイトB の URL があれば、その URL にジャンプします。

別の方法としては、 wp-config.php に次の2行を追加します。

define( 'WP_HOME', 'サイトA の URL' ); define( 'WP_SITEURL', 'サイトA の URL' );

こちらの方法は、データベースは書き換えません。
こちらも記事内に記載された URL 等は、変更されませんので、サイトB の URL があれば、その URL にジャンプします。

詳しくは、サイト URL の変更 を読んで内容を確認してください。

投稿2021/06/20 07:22

CHERRY

総合スコア25216

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tokei6

2021/06/21 02:11 編集

上記のように設定し、また、.htaccessを追加したところ、問題なく表示させることができました。 ご丁寧にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.39%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問