Search Replace DB でWordPressのURLの変更手順
Search Replace DBダウンロードから置換の作業完了までを備忘録としてまとめました。使い始めた当初、迷った点などもできるだけ平易な言葉を使ってわかりやすく説明しています。
*当方の環境はSearch Replace DBのバージョンはv4.1.1、サーバーはWpx speedを使用。
ツールについて何ができるかといった説明やダウンロードするための入力フォームの説明等は他のブログ記事でわかりやすいものが多数ありますので、割愛します。
メールのリンクからダウンロードする
Search Replace DBを使用するにはまずはSearch Replace DBのサイトの入力フォームに必要事項を入力し、登録する必要があります。
Search Replace DB 公式サイト
https://interconnectit.com/search-and-replace-for-wordpress-databases/
*入力項目の解説については割愛。
登録したメールアドレスにSearch Replace DBより「Dear 登録名 – here’s your Search Replace DB download Link」といったタイトルのメールが送付されます。
*補足:Gmailアドレスには届きましたが、当初登録したso-netのメールアドレスには何度登録しても届きませんでした。全文英語なので、迷惑メールとして処理されていたのかもしれません。届かない場合は迷惑メールフォルダを確認してみましょう。
v4.1.1と3.1.0の違い
2020年11月現在で最も新しいバージョン4.1.1です。最新バージョンを使いたい方は送られてきたメールの文中にある「Download Search Replace DB v 4.1.1 here.」を、バージョン3.1.0を使いたい方は「then please use v 3.1.0」のリンクをクリックしてください。
v4.1.1とv3.1.0の違いはざっくりと以下です。
- v4.1.1はPHP7.3に対応。
- v3.1.0は古いPHP環境の場合。又、このバージョンではフォルダをアップロードするだけでdatabaseの項目、ユーザー名やパスワードを自動表示してしまいます。セキュリティ面では危険ですが、使い慣れない人からすると楽なのかもしれません。
v3.1.0のほうがエラーが少ないと書かれている記事を見かけたことがありますが、私自身はv4.1.1で大きな問題は起こっていないので、現時点ではv4.1.1を使用しています。
zipフォルダを解凍し、FTPでアップ
v4.1.1を前提に話を進めます。
フォルダを解凍し、アップロードする
ダウンロードした「Search-Replace-DB-4.1.1.zip」を解凍すると、フォルダ「Search-Replace-DB-4.1.1」になりますが、FTPにて移転後のWordpressをインストールしているサーバーにこのままアップロードします。
アップロードする場所はwp-config.phpと同じ階層です。
*セキュリティ上、フォルダ「Search-Replace-DB-4.1.1」のフォルダ名は変更するのがベストです。デフォルトのフォルダ名のままだとデータベースを簡単に書き換えられるツールのアドレスを他人から推測できてしまうためです。今回はわかりやすくそのままにしています。
ツールの画面にアクセスする
FTPでアップしたら、該当のURLにアクセスします。
例)https://ドメイン名/ → https://ドメイン名/Search-Replace-DB-4.1.1/
以下の画面が表示されます。
今回はフォルダが「Search-Replace-DB-4.1.1」のままアップしたため、WPをインストールしている階層の後ろのURLに、「Search-Replace-DB-4.1.1」を追加し、アクセスします。
*補足:例えばフォルダ名「Search-Replace-DB-4.1.1」を「srd」など別の名前に変えている場合はもちろんアドレスはhttps://ドメイン名/Search-Replace-DB-4.1.1/ ではなく、https://ドメイン名/srd/となります。
このツールの使い方を解説している記事には「http://ドメイン名/Search-Replace-DB-master/にアクセスしましょう」とよく書かれていますが、あくまでもアップロードしたフォルダの名称が「Search-Replace-DB-master」だった場合の内容です。ドメインから後ろのURLはアップロードしたフォルダ名になりますので、ご注意ください。
移転元のURLと移転先のURLの入力
以下のような赤い画面が表示されたら、必要項目を入力します。まずは移転元のURLと移転先のURLを入力します。
- replace:ドメイン変更前URL
- with:ドメイン変更後URL
このURLの注意点①はドメイン変更前・変更後のどちらのURLも「最後のスラッシュは含めない」です。
具体的には弊社のアドレス https://prospect.co.jp/ を例にすると
悪い例:https://prospect.co.jp/
良い例:https://prospect.co.jp
注意点②として私の場合はさらに「https:」も削除したURLを設定しています。具体的には
元々のURL:https://prospect.co.jp/
修正後のURL://prospect.co.jp
*補足:スラッシュを削除して「prospect.co.jp」のみだと、一見更に抜け漏れに見えますが、メールアドレスが含まれてしまう場合もあるため、個人的にはおすすめしません。
具体的には「Contact Form 7」という有名プラグインにドメイン名を使ったアドレスを使用しており、置換するはずではなかったデータも危うく置換しそうになりました。
http、httpsなどのプロトコルを含めるかはそのサイトの状況に応じて決めましょう。
Database Details 5つの入力項目
5つの入力項目がありますが、2つに分けてご説明します。
database name・username・passの項目
データベース名・ユーザー名・パスワードの3つはサーバーにあるWordpressの設定ファイル wp-config.phpからデータを引っ張ってきます。
そのため、まずは新しいサーバーのwp-config.phpファイルをダウンロードします。
wp-config.phpファイルをダウンロードしたら、エディターで開き、以下の29行目辺りで3つの項目を確認します。
- database name:29行目 ①データベース名
- username:32行目 ②ユーザー名
- pass:35行目 ③パスワード
上記の①~③の値を以下のSearch Replace DBの入力項目にコピペします。
host・portの項目
残り2つhostとportは基本的に自動で表示されます。
*補足:portはサーバーのデータベースがMaria DB5の場合「3306」、Maria DB10は「3307」になります。私が今回インストールしたWpx speedはデータベースがMaria DB5のため、portが3306と表示されます。
データベースの接続テスト
Database Detailsの5つの項目を入力した後は、赤い四角いボタン「Test connection」をクリックし、ユーザーネームやパスワードに誤りがなくデータベースにちゃんと繋がるかテストしましょう。
正しければ、緑の背景の表示で「Success.You are connected」と表示されます。
Which Tables?
特別に除外したいデータがなければ、基本的にデフォルトのall tablesそのままでOKです。
まずはシュミレーションする
いきなり置換するのではなく、置換した場合、どのように変更されるのかシュミレーションできるので、まずは確認します。
Let’s goの項目にある赤い「Do a safe test run」をクリックします。
「Do a safe test run」をクリックすると実際どのように置換が行われるかボタンの下に一覧が表示されます。
*補足:以前のバージョンでは「Do a safe test run」の文言が「dry run」でした。日本語に訳せば「リハーサル、予行演習」という意味ですが、当時私は知らなかったので、「dry run」=「乾いた走り??」と少し迷いました。バージョンアップでボタンの名称が非英語圏の人にもわかりやすくなりましたね。
view changesをクリックして置換される内容を確認する
赤字の「view changes」をクリックすると、具体的にどのような置換が行われるか確認できますので、一通りチェックしましょう。*はじめて使用した時はそれどころではありませんでしたが・・・
以下のようにポップアップ画面で表示され、具体的な置換箇所が表示されます。
*補足:ポップアップ画像なので、この画面を閉じるときは右上のバツをクリックしましょう。ブラウザの戻るボタンからだと必要項目を再入力する必要があります。
”Yoast plugin ”の注意書き
The dry-run option was selected. No replacements will be made.
Incomplete or ill-typed serialization data:: This is usually caused by a plugin storing classes as a serialised string which other PHP classes can’t then access. It is not possible to unserialise this data because the PHP can’t access this class. P.S. It’s most commonly a Yoast plugin that causes this error.
「Do a safe test run」をクリック後、上記のメッセージが表示されます。これは一部のプラグイン 具体的にはSEO関連のWordpressプラグイン”Yoast”でちゃんと置換されないようなケースがあるといった注意喚起です。これは実際に置換が完了した場合でも表示されます。
Yoastというプラグインを入れていない方は無視してOKです。
*補足:私自身は該当プラグインを入れていないため未確認ですが、Yoastプラグインを入れている場合、v3.1.0を使うと正しく作動するといった記述を以前読んだことがあります。
置換する
赤い「Search and Replace」ボタンの上に「You cannot undo this once started -are you sure?」と書かれていますが、「一度開始したらやり直しはできません。本当にいいですか?」といった意味合いです。言葉の通り、やり直しはできませんので、バックアップの取得と検索、置換項目の確認を行いましょう。
内容に問題がなさそうであれば、「Search and Replace」のボタンをクリックします。
*補足:以前のバージョンでは「Search and Replace」のボタンの名称は「live run」でした。「リハーサル、予行演習」の意味合い「dry run」の反対の言い回しですが、知らない人にはわかりづらいですね。「Search and Replace」は「検索して置き換える」の意味合いがより伝わりやすくなりました。
「Are you absolutely ready to run search/replace? Make sure you have backed up your database!」と書かれたポップアップアラートが表示されます。「ちゃんと検索&置換する準備はできていますか?データベースのバックアップが取れているか確認してください」といった意味合いです。
バックアップが取れているなら、「OK」をクリックしましょう。
置換が開始されます。
5秒以内なら取り消し可能
「Search and Replace」をクリックした後、5秒以内であれば、取り消しができます。
クリックした後、「Search and Replace」のボタンの横に「stop」と書かれたボタンが出現します。それと同時に「Search and Replace」の右側に「5..4..3..2..1」と秒数がカウントされるのですが、これは取り消しができるまでの秒数が表示されています。
この秒数が表示される5秒以内に「stop」ボタンをクリックすれば、置換は取り消せます。実際見ていると一瞬であっという間に取り消し可能時間は終わりそうですが..
置換の完了を確認する
「Search and Replace」ボタンの下に以下のメッセージが表示されれば、置換完了です。
In the process of replacing 変更前ドメイン with 変更後ドメイン we scanned ● tables with a total of ● rows, ● cells were changed. ● db updates were performed. It all took ● seconds.
*●は数字でそれぞれのサイトによって異なります。
実際にURLを表示し、置換完了を実際確認する
実際に変更後のURLを表示し、置換が完了したことを確認します。
この時、キャッシュの関係で移転前のURLにリダイレクトされてしまうことがありますので、キャッシュを一旦消す、もしくは私の場合は取り急ぎ確認するにはスムーズなので、キャッシュが残っていない普段使用しないブラウザで該当URLを表示させています。
最後に必ずツールを削除する
置換の完了が確認後、最後に必ずこのツールを削除してください。簡単にデータベースを書き換えられるツールがサイト上に放置されるのは大変危険です。
特にv3.1.0の場合、データベース名やパスワードが自動的に表示されてしまうため、ツールが置いてあるフォルダにアクセスさえできれば、簡単にデータベースの書き換えができてしまうということです。
尚、画面にある「delete me」ボタンからも削除できます。
ただし、「delete me」ボタンから削除した場合、置換ツールは使えないとは言え、フォルダと一部ファイルは残ることになります。個人的には気持ちが悪いので、FTPにてフォルダごと削除しています。
以上、Search Replace DB の使い方でした。