web-dev-qa-db-ja.com

WordPressマルチサイトインスタンスを別の場所にコピーした後のDB接続エラー

これが私の設定です。 http://example.com でMultisiteインスタンスを実行していますが、開発とステージングを行いたいです。 WPの既存のMultisiteインスタンスをlocalhostに移動するのは悪夢なので、代わりにステージング場所でdevを実行します。

ホスティングアカウントの/ public_html/staging /ディレクトリを指すように http://staging.example.com を設定し、すべてのWPファイルを自分のルートから/にコピーしました。ステージング/ディレクトリ。私はまたデータベースファイル(SQLダンプ、新しいデータベースにテーブルをインポートした)をコピーし、そして新しいデータベースを指すようにwp-config.phpファイルを変更しました。

データベースレコードを変更するためにSQLを実行した後、私はwp-config.phpファイルのこの1行も変更します。

/** Turning on WordPress MU, new in 3.0 */
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
$base = '/';
define( 'DOMAIN_CURRENT_SITE', 'example.com' ); // <- I change this line
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

に変更されました:

define( 'DOMAIN_CURRENT_SITE', 'staging.example.com' ); // <- now changed

http://staging.example.com をロードすると、... Error establishing database connectionになります。

私はユーザー名とパスワードをチェックし、トリプルチェックし、そのユーザーが新しいステージングデータベースに対するすべての権限を持っていることを確認し、DBHOSTを 'localhost'のままにしました助けてください。

データベース接続が失敗するのはなぜですか?誰でも? (ご協力ありがとうございます。)

NB: http://example.com は、データベースが異なるだけで、非常によく似たdb接続設定で正常に動作しているので、データベースサーバーがダウンしても問題ありません。 。

9
Jason Rhodes

考えたことがある - 私がwww.example.com/staging/wp-adminにアクセスすると自動的にwww.example.com/wp-adminにリダイレクトされる

Staging.example.comからexample.com/stagingへのリダイレクトが既存のインストールと競合していませんか?

更新:.htaccess問題とデータベース内の複雑なドメイン参照に関連している可能性があるようです

WP Codexから:

ワードプレスマルチサイトを移動する

データベース自体がサーバー名とフォルダーの場所を複数参照しているため、マルチサイトの移動ははるかに複雑です。

Multisiteを移動する最善の方法は、ファイルを移動し、.htaccessとwp-config.phpを編集し(Multisiteを含むフォルダ名が変更されている場合)、その後手動でデータベースを編集することです。ドメイン名のすべてのインスタンスを検索し、必要に応じてそれらを変更します。このステップはまだ簡単に自動化することはできません。 Multisiteをあるフォルダから別のフォルダに移動する場合は、wp_blogsエントリを編集してフォルダ名を正しく変更する必要があります。

2
timshutes

私はそれを解決しました、そしてそれは働きました :)

wp_blogsテーブルでは、

古い建造物 was

Domain : localhost/smart_facility_linux
Path : /

しかし、私はそれが次のように動作するように変更しました。

ルートサイトの場合:

Domain : localhost
Path : /smart_facility_linux/

サブサイト1(メインサイトの下の任意のサブサイトに、例を挙げた):

Domain : localhost
Path : /smart_facility_linux/subsite1/
10
Pratik C Joshi

私が見つけたドメインやホストを簡単に移管する方法は一つしかありません。私にとってシングルサイトとマルチサイトのインストールで問題なく動作します。

  1. データベースを.sqlファイルにエクスポートします。 (私はこれにPHPMyAdminを使います)
  2. 編集するファイルの新しいコピーをわずかに異なる名前で作成します。
  3. 好みのテキストエディタでファイルを開きます>(たとえばgedit)
  4. ドメインと絶対パス(/ home/username/public_html /から/ home/username/public_html /)で本番からdevへの検索/置換を実行します。
  5. ファイルを保存してください。
  6. インストール全体を開発ディレクトリにコピーします。
  7. Wp-config.phpファイルに次の行を追加してください。

    define( 'RELOCATE'、true);

  8. ログインして、パーマリンク設定を保存します。

  9. Wp-config.phpに書いた定義ルールを削除してください。

2
Jeff Sebring