web-dev-qa-db-ja.com

データベースと一緒に既存のWordpressのwp-contentフォルダを新しいサーバーと新しいドメイン名に移動するにはどうすればいいですか?

LEMPスタック上でWP 3.5.1を実行中(Linodeで終了)...

私はWPサイト用のwp-contentフォルダーとデータベースのフルバックアップを持っています。サイトのURLは次のようなものです。

test.example.com

私は自分のサーバー上でサイトを運用したいのです。

test.mydomain.com

サイトが完成してDNSの変更が有効になったら、サイトのURLを次のようにします。

myclientsdomain.com

このようにサーバーの移動やドメインの変更を処理する上で好ましい(そしておそらく最も直接的な方法で)方法は何ですか?私は段階的な答えを探しています、それはファイルとデータベースの両方のために上で説明されたすべての状況を説明するものです。

4
wgpubs

コーデックスでWordPressを動かすことについて、かなり良い ステップバイステップがあります 。それは私がドメインを変えるときに従うものです。

ファイルを移動するのはとても簡単です。難しいのは、データベース内のハードコーディングされた参照です。ただし、 シリアル化された検索と置換 は、すべてのデータベースの変更を処理します。私は過去にVelvet Bluesプラグインを使ったことがありますが、Search and Replaceスクリプトはかなり優れています。

7
helgatheviking

私は素晴らしいプラグインデュプリケータを利用して、この正確な手順を定期的に完成させています。

http://wordpress.org/extend/plugins/duplicator/

プラグインは完全にサポートされていて、ここには素晴らしいFAQがあります。

http://lifeinthegrid.com/labs/duplicator/ /

プラグインはあなたのデータベースとファイルの両方の.Zipバックアップとあなたがあなたの新しいルートディレクトリに置くインストーラー.phpを作成するでしょう。あなたは単にあなたの新しいデータベース情報を入力するだけでそれが残りをします。

おそらくこれまでのところ私のお気に入りのWPプラグインです。

途中で助けが必要な場合は、私に知らせてください。

4
cunningfox

考慮すべき点がいくつかありますが(後の回答で)、次の手順をお勧めします。

ファイルとデータベースをバックアップする

これは一目瞭然です。あなたはたくさんのデータ操作をするつもりなので、あなたのオリジナルが安全であることを確認してください。

ファイルを転送する

これを行うための最速の方法はあなたが別のサーバーからディレクトリをインポートすることができるホストを持つことです。これは、FTP詳細を指定すること、およびtargetディレクトリを定義することによって実行できます。

サーバーは通常ユーザーが持っているものよりずっと速いインターネット接続を持っているので、これはデータを転送するのに好ましい方法です。コマンドラインを使ってこれらのコマンドを手動で実行することもできます。

もっと遅いオプションはZipファイルを生成し、ダウンロードし、あなたの新しいサーバーにアップロードしそしてそれを解凍することです。あなたがそれをする可能性がないならば、遅い道をたどってください - すべてを荷を積むこととすべてをアップロードすること。ファイル転送中にコーヒーを飲みに行く:)

データベースを転送する

繰り返しますが、他のサーバーからでも、既存のデータベースを新しいデータベースにインポートするオプションが多くのホスティング業者にあります(もちろん、古いサーバーは外部データ接続を受け入れなければなりません)。

あなたがこれを行うことができれば素晴らしい、しかしあなたはあなたのデータベースをエクスポート/インポートすることもできます。

新しい(サブ)ドメインを新しいディレクトリに設定します。

新しいサーバーで、ファイルが古いサーバーと同じ方法で設定されていることを確認し、サブドメインを古いサーバーと同じディレクトリ(通常はWordPressルート)を指すようにします。

wp-config.phpを編集する

新しいwp-config.phpを保存してください。データベース接続の詳細を編集するだけです。

新しいURLを読み込む

これでWordPressをセットアップする必要がありますが、それでも古いSiteURLとAdminURLが使用されるため、ログインできません。新しいデータベースのoptions-テーブルでこれらの値を変更します。探している2つの値はsiteurlhomeです。新しいドメインをそこに配置してください。

あなたのログインとあなたのサイトをチェックしてください

これですべてが動作するはずです。サイトを使用するだけでなく、ログイン、編集、書き込みもできます。唯一の問題はあなたの投稿がまだそれらの中に画像と添付ファイルのための古いURLを持っているということかもしれません。

投稿に古いURLが含まれている場合、または確信がない場合は、posts-tableでデータベースを確認してください。

データベースを直接検索するか、 シリアル検索や置換 のようなスクリプトを使用してこれを行うことができます。古いURLを見つけた場合は、手動または自動で置き換える必要があります。私はそれを自動的に行い、その後エラーをチェックすることを好みます。

他の表をチェックする

他のテーブルに古いURLが含まれているかどうかも確認してください。これは置き換えるのが少し難しいかもしれませんが、それはまたあなたのサイトを完全に動かすためにされなければなりません。

パーマリンクを再生成する

念のために、もう一度パーマリンク設定を保存してパーマリンクを作成してください。

あなたのサイトをチェック

あなたがそれを転送した後、本当にあなたのサイトをチェックすることを忘れないでください。通常のPHP/HTMLよりも失敗する可能性が高いので、すべての機能、特にAJAX関連、Contactform、Mapsなどをチェックしてください。

ビールのための時間:)

気を付けること!

いつものように、手動で作成され、手動で転送され、そして自動的に編集されたものはどれもフェイルセーフではありません。ここに簡単に踏み込むことができますが簡単に回避することができますいくつかのコメントラップです。

  • 不適切にコーディングされたプラグイン(相対パスではなくWebサイトのURLを保存し、WordPress関数を使用して完全なURLを取得する。AjaxURLには多くの問題がある可能性があります。)
  • エンコーディングの問題( サーバーとデータベースの両方で同じエンコーディングを使用することを絶対に忘れないでください!!! 通常、推奨されるUTF-8を使用すれば、これで問題ありません)
  • シリアル化されたデータ(これはあなたが遭遇する可能性のある最大の問題です。テーブル全体がシリアル化された配列に格納されているTablepressのようなプラグインを使う場合、自動的に何かを置き換えるとすぐに壊れます。この特定のプラグインのエクスポート/インポート機能のために、そして追加のステップとしてこれを使用します。彼らがこの機能を持っていないなら、あなたは手でそれをしなければなりません)
  • サーバー設定(標準設定のため、サイトが新しいサーバー上で実行されないことが簡単に起こる可能性があります。必ず十分なリソースを用意してください。)
  • あなたのテーマにハードコードされたURL(これは起こるべきではありませんが、あまりにも頻繁に起こり、古いサイトがもう利用できなくなるとすぐにあなたの画像とリンクを壊します)
  • キャッシュの問題(古いサーバーで行ったのと同じキャッシュファイルを使用しないでください。最良の方法は、サイトをエクスポートする前にキャッシュを無効にし、すべてのキャッシュを空にすることです)
  • サーバーで2回目に設定を変更したときにすべてがうまくいくと仮定します(必ずもう一度すべてを確認してください)。
  • プラグインとテーマのオプション(旧Emailadressesなど)

それはそれであるはずです。やるべきことのように見えますが、実際にはほとんどが自動的に実行されます。あなたはただうまくいかないことができるすべてについて考えて、それがそうしたかどうかをチェックする必要があります:)

楽しむ!

3
fischi

プラグイン、スクリプト、あるいはSQLの知識さえも使用する必要はありません。シンプルなメモ帳で移行には十分です。すべてのワードプレスファイルを新しいサーバーにアップロードし、wp-config.php(メインのワードプレスフォルダー内)で3つの値を変更する必要があります。define( 'DB_NAME'、 'your_new_db_name'); define( 'DB_USER'、 'your_db_username'); define( 'DB_PASSWORD'、 'your_db_password');

次に、現在のサーバーでphpmyadminのようなmysqlクライアントを使用している場合は、データベースをファイルにエクスポートしてから、メモ帳でyour_db_dump.sqlを開き、次にすべてのoccurencies test.example.comを見つけてtest.mydomain.comに置き換えます。そのdb_dumpを新しいデータベース(wp-config.phpで定義したもの)にインポートする必要があります。それで全部です。

1
bigwolk

私はこのようにしていくつかのサイトをあるサーバー/ドメインから別のサイトに移動しました、そしてあなたが通常必要とするのはバックアップとあなたが持っているように見えるあなたのwp-contentフォルダーだけです。私が従う方法は次のとおりです。

  1. 新しいサイトにWordpressをインストールします。あなたはこれのためにあなたが好きな方法を使うことができます、いくつかのホストはワンクリックインストールを提供します、さもなければただ先に行き、あなたの好みの方法に従ってこれをしなさい。
  2. あなたが持っているコピーでwp-contentフォルダを上書きしてください。これはあなたのすべてのプラグイン、アップロードされたファイルなどがあなたの古いサーバーにあることを保証します。
  3. データベースをあなたが持っているコピーで上書きしてください。私は通常、インポート機能付きのphpMyAdminを使ってこれを行います。ここで注意すべきことは、バックアップにDROPステートメントが含まれていない場合は、最初にデータベース内のすべてのテーブルを削除する必要があるということです。
  4. ドメイン名を変更している場合は、phpMyAdminでwp_optionsテーブルを参照して "site_url"オプションを更新する必要があります。あなたが更新することができる "home"と呼ばれるもう一つのオプションがありますが、あなたのサイトが運用可能になるとこれがWordPress管理で変更されることができるのでこれをする必要はありません。

完了しました。

あなたのサイトを稼働させるために必要なことはこれだけです。運用が開始されたら、古いサイトを参照してパーマリンクを再生成する可能性のあるプラグイン/テーマ固有の設定を確認することをお勧めします。

0
Owen Cutajar

前の答えはこれでした、しかしここにいくつかの他の入力によるステップバイステップがあります:

  • WPをインストールしない
  • 元のWPディレクトリ全体を新しいディレクトリにコピーします(何かが足りない場合は、以下を参照してください)。
  • サーバーのコントロールパネルでphpmyadminを使用してSQLをインポートします。
  • ディレクトリWPへのftp searchreplacedb.phpがあります。
  • あなたのブラウザからsearchreplacedb.phpを実行してください(後に削除してください!!!)
  • 少し時間を取ってクライアントに75ドルの請求をしてください。

    (searchreplacedb.phpは無料で入手可能です:interconnectit.com/products/search-and-replace-for-wordpress-databases ...それらにも手順があります)。

あなたが持っているのがWP contentsフォルダだけであるならば、あなたは別の問題を抱えています。正確な同じバージョンの残りのWPインストールを入手する必要があります。 WPのバージョンがわからない場合は、データベースを検索してください。オンラインで古いバージョンをダウンロードするのは簡単です。以前と同じようにポップアップ表示させたい場合は、以前のようにすべてを適切な場所に配置し、すべて新しいフォルダを設定するためにftpを使用します。あなたが何かを欠いているか、それが標準的なテーマになっているか、プラグインをオフにするならば、dbとWPものをアップロードした後にサイトを訪問しないでください。私はプラグインの設定を失ってしまい、それをすべて終わらせなければならなかったので、ただ考えてゆっくり行ってください。

サブフォルダまたはアドオンがすでにある場合、または新しいサイトに必要な場合は、事前に計画してください。必要な新しいフォルダや新しいフォルダがないことを考慮する前に、URLを置き換える必要はありません。 'url'などに戻る前に 'folder/url'に対してsearchreplacedbを実行する必要があるかもしれません。そうでなければ、 'addon'を 'sub directory installのroot表示'や他の無意味なものに変更することがあります。

新しい構造が古い構造と一致し、WPディレクトリ全体がある場合は、この記事を読むよりも簡単かつ迅速に行うことができます。命令が言うように、それがautoconfigを持っているので、あなたがWPをアップロードしたのと同じディレクトリにプログラムを置いてください。

あなたがFTPアクセス、コントロールパネルアクセス、またはSQLアクセスを持っていないなら、あなたは本当に良いサーバーを必要とし、運が悪いかもしれません。


他の投稿で推奨されている検索と置換を試してみてください。運が良ければ、古いバージョンのWPを持っていれば、必要なパラメータに収まります。あなたのサイトでロシアンルーレットをプレイする方法の本当の痛み。

また、メモ帳でデータを編集してはいけません。今すぐ探して何週間も費やすかもしれないニースエラーがあります!あなたがそれを見なければならないならば、見てください、それを保存しないでください。メモ帳が存在することを忘れてメモ帳++を使用する必要がありますが、テキストエディタでシリアル化されたデータを手動で編集するのは、phpmyadminで検索と置換を試みるのと同じくらい悪いです。しないでください。

あなたは "SQL直列化データ"を検索することができます。簡単な答えは、検索と置換はSQLのシリアル化されたデータを円にするということです。 WP dbはデータをシリアライズしています…最近ではさらにそうです。

私はこれを何度もやり過ぎてわずかな成功を収め、ついにそれを正しく研究する前に何度も壁にぶつかった。それは今公園を散歩しています。

0
Don

私がしているのは:

  1. 受信側ホストに新しいデータベースを作成します。 SQLファイルをインポートします。新しいデータベースで次のSQLクエリを実行します。

    UPDATE wp_options SET option_value = replace(option_value, 'test.example.com', 'test.mydomain.com') WHERE option_name = 'home' OR option_name = 'siteurl';
    
    UPDATE wp_postmeta SET meta_value = replace(meta_value, 'test.example.com', 'test.mydomain.com') WHERE meta_key = '_menu_item_url';
    
    UPDATE wp_posts SET guid = replace(guid, 'test.example.com','test.mydomain.com');
    
    UPDATE wp_posts SET post_content = replace(post_content, 'test.example.com', 'test.mydomain.com');
    
  2. WordPressファイルを受信サーバーにアップロードします。

  3. デフォルトのWordPressファイルを上書きして、wp-contentフォルダをアップロードします。
  4. 作成したデータベースのdb名、ユーザー名、パスワードを使用して、通常どおりにwp-config.phpを設定します。
  5. ダッシュボードに移動して、ウィジェット内のtest.example.comのインスタンスを手動で変更します(これらはデータベースでシリアル化されているため、SQLクエリでは変更できません)。
  6. Myclientsdomain.comに切り替える時が来たら、上記のSQLクエリとウィジェットの修正をもう一度実行します。

テーマやプラグインによっては、データベースやダッシュボードに追加の変更を加えることができます。これらはあなた自身が発見し、あなたがそれらを見つけたときに変更しなければならないでしょう。

それは完璧ではないことと、ドメインを越えてWordPressを移動することはお尻の痛みかもしれないとの公正な警告。私が行ったもう一つのことはあなたのwp-configファイルに以下を追加することです:

define('WP_HOME','http://'. $_SERVER['SERVER_NAME']);
define('WP_SITEURL','http://'. $_SERVER['SERVER_NAME']);

これは、サイトが現在どのドメイン上にあるかに関わらずサイトを機能させるのに役立ちますが、それでも、コンテンツ、オプション、およびメニューでハードコーディングされたURLを扱う必要があります。私はそれを自分でテストしていないし、それらが機能するためにあなたがあなたのデータベースから対応するオプションを削除する必要があるかどうか知りません。

更新: データベース部分を処理するプラグインがあるだろうと推測したはずです http://wordpress.org/extend/plugins/wp-migrate-db/

0
Michael Dozark