web-dev-qa-db-ja.com

Wordpressデータベースのドメイン名を置き換える方法は?

私は開発環境にインストールされたWordpressデータベースを持っています...したがって、サイト自体への全ての参照は固定IPアドレスを持ちます(例えば192.168.16.2)。今、私はそのデータベースをホスティング上の新しいWordpressインストールに移行しなければなりません。問題は、SQLダンプにIPアドレスへの参照が多数含まれていることです。そのため、my_domain.comに置き換える必要があります。

コマンドラインからsedや他のコマンドを使ってそれを変更することができます。問題はJSONを使う設定データがたくさんあることです。だから何?ご存知のとおり、JSON配列では、要素の文字数を知るためにs:4:が使用されます。したがって、IPをドメイン名に置き換えただけでは、構成ファイルが破損します。

私は数年前にデータベース用の値を変更することを可能にし、JSON配列の面倒を見ることができるWindows用のアプリを使用しました。残念なことに、私はアプリの名前を忘れてしまいました...だから質問は:あなたは私が欲しいものをやることを可能にするアプリを知っていますか?

11
Cristian

ご覧のデータはJSON形式ではありません。 JSONは(通常)そのような値の型と長さを格納しません。あなたが見ているのはSERIALIZEDデータです。 "mysql replace serialized"をGoogleで検索すると、このページが表示されます。 http://davidcoveney.com/mysql-database-search-replace-with-serialized-php/

7
MathSmath

コーデックスはまともなガイドを持っています - サイトURLを変更する

基本的に、URLが重要である、またはそれほど重要ではない場所がいくつかあります(いくつか欠落している可能性があります)。

  • WPがサイトとみなす場所を制御するhomeおよびsiteurlオプション。
  • gUIDを投稿すると、これらはリンクのように見えますが、実際にはそうではありません - 識別子だけです。それらが無関係であることは絶対に確信していませんが、私はURLをテストスタック上で大きく変更させ、これらを更新することに煩わされませんでした。
  • 投稿本文のリンク
  • プラグイン設定にリンクしている可能性があります。
8
Rarst

Rarstが前述したように、データベースには2つの設定だけが必要です。データベースをインポートした後、PHPMyAdminにログインしてデータベースを直接編集します。

私はいつもデータフィードをインポートするために私のPC上の開発サーバーを使っていて、それらは http:// localhost/testsite /ポスト名/ の行に沿ってPostsにアタッチされたURLを持っています。問題。

私はそれが問題ではないと気付くまでSQL検索と置換を使用していました。私はあるドメインから別のドメインにいくつかのサイトを移行しました、そして私がSQL検索と置換オプションを使用するコンテンツの中で絶対URLを持っていたところ。

update wp_posts set post_content = replace(post_content,'http://www.olddomain/','http://www.newdomain/');

ダビデ

6
David Law

これは私がブックマークしている私がまた時間と時間に戻ることをブックマークした素晴らしいリソースです/ http://www.onextrapixel.com/2010/01/30/13-useful-wordpress-sql-queries-you-wish-you -knew-early/

彼らは述べる

UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldsiteurl.com', 'http://www.newsiteurl.com') WHERE option_name = 'home' OR option_name = 'siteurl';
5
Tom

これらの値はwp-config.phpの定数で設定できます。その後、必要に応じてプラグインアドミニストレータを使ってデータベースのエントリを変更できます。これをwp-config.phpに書き込みます。DB内の値は関係ありません。

define('WP_HOME', 'http://example.com/to-wordpress');
define('WP_SITEURL', 'http://example.com/to-blog');
3
bueltge

新しいデータベースが選択されていることを確認してから、特にwp_options、wp_posts、wp_postmetaの各テーブルに対していくつかのSQL更新と置換コマンドを実行します。

以下のようにコードを使用し、古いURLと新しいURLを入れ替えてください。末尾のスラッシュは入れないでください。また必要に応じて該当する場合はテーブルのプレフィックスの値を変更します(例:wp_)

UPDATE wp_options SET option_value = replace(option_value, 'http_www.oldurl', 'http_www.newurl') WHERE option_name = 'home' OR option_name = 'siteurl';    
UPDATE wp_posts SET guid = replace(guid, 'http_www.oldurl','http_www.newurl');    
UPDATE wp_posts SET post_content = replace(post_content, 'http_www.oldurl', 'http_www.newurl');    
UPDATE wp_postmeta SET meta_value = replace(meta_value,'http_www.oldurl','http_www.newurl');
2
user129645

この質問に対する私の答えを見てください。

データのクリーンアップに関するあなたの問題に対処し、フックを使用することによって特定のデータ移行ニーズに合わせてカスタマイズすることもできます。

それが役に立てば幸い。

2
MikeSchinkel

単純なSQLクエリ - 複雑なREPLACEのものは必要ありません。

update wp_options set option_value = 'http://mynewdomain.com' where option_name = 'siteurl';

update wp_options set option_value = 'http://mynewdomain.com' where option_name = 'home';

PHPMyAdminまたはデータベースへのアクセスを希望するその他の方法でそれらを使用してください。

2
Mark

これは非常に古い質問ですが、他のものを探しているときに出会ったので、今後の参考のために追加したいと思いました。

これを行うための最も簡単で完全な方法は、searchreplacedb2.phpを使用することです。それはここで見つけることができます: http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ /その使用方法の説明。

私のワードプレスサイトで開発環境から実際の環境に移行することで、私は確かに多くの時間を節約できました。

完了したら、パブリックサーバーから削除するようにしてください。

1
MatthewLee