Search-Replace-DB」タグアーカイブ

SynologyのWordPressのURLをSearch-Replace-DBで変更する

SynologyでWordPressを使ってWEBサイトを構築した場合、構築後にWordPressのサイトURLを変更したいケースが多々あります。

その為には色々な方法がありますが、完璧に移行させる為には「Search-Replace-DB」というパッケージを使う方法がお勧めです。

しかしこのツールの使い方を解説する前にWordPressがどの様にサイトURLを保存しているのか?を解説します。

1.WordPressの構造と「Search-Replace-DB」の必要性

WordPressは下記から構成されています。

①Webフォルダ直下のフォルダがWordPressのPHPプログラムになります。

②上記のプログラムが動くとMariaDB内のDBにアクセスして画面が表示されます。

­ ­メモ

DBの中に登録されるのは、サイトのURL、ページや投稿データの本文(この中にもURLもデータの一部です)、外観→カスタマイズで登録した画像等のURLデータ、ウィジェットで登録した画像等のURLデータです。

但し、画像その物はWebフォルダの中に登録されています。

 

データベースは各種のテーブルから構成されておりますが、URLに関連するテーブルに下記になります。

テーブル名 内容
wp_options
option_value列に下記のデータが登録されています。
・サイトURL、ホームURL
「外観→カスタマイズ」で修正したデータ(画像や動画のURLはここに入ります)
・ウィジェットで編集したデータ(画像や動画のURLはここに入ります)
wp_posts

 guid列に固定ページや投稿のURLが格納されています。

post_content列に本文の中に画像等へのリンクURLが格納されています。

wp_postmeta
meta_value列に投稿、固定ページ・カスタム投稿に付随するデータが格納されています。
またカスタムフィールドのデータもここに格納されています。

よって、URLを変更する場合はSQLコマンドを実行する事により、旧のURLから新URLにすれば良いと思われますが、赤字の項目だけはこの方法では変更できません。

理由は、これらのデータは文字数+URLで持っている為、URLは変更できたとしても文字数が合わない為に設定データが無い物として扱われる為です。

これをうまく処理してくれるツールが「Search-Replace-DB」というパッケージです。

2.Search-Replace-DBの使い方

SynologyでMariaDB10を使っている場合は、「Search-Replace-DB」の使い方を一工夫しないと利用できません。

ここではこのケースを場合の使い方を解説します。

2-1.「Search-Replace-DB」のダウンロード

ダウンロードの仕方はWebで「Search-Replace-DB」で検索してその指示に従ってダウンロードして下さい。

 

2-2.「Search-Replace-DB」プログラムの配置

解凍した「Search-Replace-DB-master」フォルダをURL変更したいWordPressフォルダに配置します。

 

2-3.上記プログラムを実行します

下記URLでSearch-Replace-DB-masterを起動します。

https://変更したいサイトのURL/Search-Replace-DB-master

下記画面が表示されます。

データベースの所にエラーでデータベースが見つからないと表示されています。

これは「localhost」で見に行った結果、見つからないという意味です。

host:127.0.0.1(このIPアドレスは自分自身を指す特殊なIPアドレスです)

port:3307(MariaDB5の時は3306)

を指定してactionにある赤い「update detailsボタン」を挿入して下さい。

下記画面が表示されます。

エラーが無くなりました。

①に変更前のURL

②に変更後のURL

を指定して「Live runボタン」を実行すると、URL変更が実行されます。

尚、実行後に「delete meボタン」を実行するとSearch-Replace-DB-masterフォルダが削除されます。

これは必ず実行して下さい。

­ ­メモ

このプログラムはlocalhostで見に行く仕様となっているのでMariaDB5なら問題なく実行できると思います。

しかしMariaDB10はソケットを使ったlocalhost:/run/mysqld/mysqld10.sockですが、このプログラムはソケットは認識しません。

そこで自分自身を表すIPアドレス(127.0.0.1)とポート番号でMariaDB10を見に行く方法を取りました。