web-dev-qa-db-ja.com

サブサイトを開発マルチサイトから本番マルチサイトに移行する方法

私は、マルチサイトを使用していくつかのサブサイトをローカルに開発し、準備ができたら本番環境に移行するための最善かつ最も安全な方法を探しています。

私はすでにフル稼働している最初のサブサイトでフルマルチサイトインストールを移行しました。他のサイトをローカルサーバー上に開発して本番サーバーだけにしておくことをお勧めしますが、明らかに私は再び完全な移行をすることはできません。

私は解決策を探しましたが、私が見つけたのは単一サイトからマルチサイトへの移動、あるいはその逆のことだけで、「サブサイトをマルチサイトからマルチサイトに移動する」ことではありません。

設定、ウィジェットなど、すべてを保持したいのですが。

11
molokom

これはやや面倒かもしれませんが、うまくいけばこれは役立ちます。ある環境から次の環境への変化が少なければ少ないほど、このプロセスの痛みは少なくなります。特に、ドメイン、サイトID、ファイルパスが同じであれば、このプロセスの負担は少なくなります。

この記事はデータベース管理の知識を前提としています。フォーラムを検索し、問題のあるステップに固有のスレッドを作成する必要があるため、ステップバイステップでは完了しません。たとえば、データベーステーブルのエクスポートに関するヘルプが必要な場合。

行うべき最も重要なことは あなたのデータベースとファイル全体をバックアップする 何かがうまくいかない場合のためにローカル開発サイトと新しい場所の両方に。何かがうまくいかないと思ってください。そうでなければ愉快に驚かせてください。

テーマファイルを移動するのはかなり簡単なはずです。 wp-content/themesディレクトリにあなたのテーマファイルをアップロードしてください そしていつものようにそれをアクティブにしてください。私はこれがすべてのブログがアクセスできる共有テーマだと思います。

新しい場所のwp-content/pluginsにプラグインファイルをアップロードします 。まだ有効にしないでください。

移行しているブログ専用のコンテンツは、wp-content/blogs.dir/2/filesのようなディレクトリに配置されます。2はサイトIDです。このサイトIDを新しい場所で維持できる場合は、新しい場所に移行した後にデータベース内の競合を最小限に抑えるのに役立ちます。それ以外の場合は、新しいパスを反映するようにデータベースを更新する必要があります。

ブログに関連するマルチサイトテーブルをエクスポートする必要があります あなたはそれらを新しい場所に移行しインポートしようとしています。移行しているブログに関連するデータを格納するテーブルを編集する必要があります。これらのテーブルのプレフィックスが新しい場所で同じであることを確認してください。

たとえば、ブログのwp_blogsテーブルには、ブログID、サイトID、ドメイン、およびWordPressマルチサイトがブログを認識して機能するためのパスが含まれています。新しい場所を反映するために正しくないこれらのいずれかを編集してください、しかしそうすることを試みる前にこのポストの残りを読んでください。

マルチサイトテーブルの概要 を参照してください。

転送するブログのWordPressとプラグインの設定を移行する 、すべてのプラグインをローカルで無効にしてから、 サイト固有のテーブル (コーデックスの参照)をエクスポートするプラグインこれらのテーブルを新しい場所のデータベースにインポートします。

新しい場所が、インポートしているテーブルと同じデータベースプレフィックスを使用していることを確認してください。接頭辞にはブログのサイトIDが含まれ、wp_2_options, wp_2_posts, wp_2_postmetaのようになります。
Lisa Sabin-WilsonによるWordPress Multisiteの探索 を参照してください。

私はあなたがphpmyAdminまたはあなたの端末のmysqldumpコマンドでインポート/エクスポートする方法を知っていると思います。これはこの記事の範囲を少し超えていますが、これは役立つはずのエクスポートの例です。

どのように特定のテーブルをmysqldumpしますか? (構文を少し明確にするために少し編集しました。):

Mydbという名前のデータベースからテーブルt1、t2、およびt3をダンプしている場合

mysqldump -u <username> -p <password> mydb t1 t2 t3 > mydb_tables.sql

新しいサイトでプラグインを有効にする前に、admin cpのパーマリンク設定に行き、その設定を保存してデータベースファイルを新しいサイトのURLに更新してください。プラグインを有効にして問題がないか確認してください。

あなたが遭遇するかもしれない1つの問題はあなたのテーブルのデータ直列化にあります。

"[...]古いドメイン名または場所への参照はデータベースに残り、リンクやテーマの表示に問題が生じる可能性があります。

データベース全体を検索してURLを変更すると、一部のテーマやウィジェットにはURLの長さをマークした値が格納されるため、データのシリアル化で問題が発生する可能性があります。 " When Your Domain名前またはURLが変わる

データのシリアル化は、プラグインに関連するデータベーステーブルでも競合を引き起こす可能性があることに注意してください。データベースに保存されているURLを手動で検索して置換するのではなく、前のcodexリンクで推奨されている データベース検索および置換スクリプト を使用してください。データベース内にシリアル化のインスタンスがわずかしかない場合は、phpMyAdminを使用して手動で編集することも、データベースを管理するための設定を変更することもできます。

あなたが遭遇するかもしれないもう一つの問題は、データベーステーブルに格納されたどんな不正確なファイルパスも新しい場所を反映するために更新される必要があるということです。メディアディレクトリや、プラグインがどのように設計されているかによっては、プラグインによって使用されるディレクトリがこれに該当します。繰り返しますが、ファイルパスを更新している間にシリアライゼーションの競合が発生しないように、検索と置換スクリプトを使用することをお勧めします。あるいは、テーブルを調べて手動で更新することもできます。

3
iyrin

あなたはWordPressの組み込みのエクスポートとインポート機能を使うことができませんでしたか?それから、FTPを使ってテーマをインストール間で移動するだけです。それはかなり速く進み、インストール間で5分以内にサイトを移行することができます。

User Syncronization と呼ばれる気の利いたプラグインを使用して、ユーザーの資格情報を同期できます。

私はそれを使ったことはありませんが、 ManageWP には、既存のサイトから新しいサイトに移動するための使いやすいデプロイおよびクローン作成ツールがあります。

0
NW Tech