Search Replace DBの使い方|WordPressデータベースのURL一括置換【SSL化・移転対応】

WordPressをSSL化(http→https)したり、別のサーバーへ移転したりすると、データベースの中に古いURLがそのまま残ってしまうことがあります。記事や設定の数が多いと手作業での修正は現実的ではないため、データベース内の文字列を一括検索・置換できる「Search Replace DB」というツールが広く使われています。この記事では、Search Replace DBの入手方法から実際の置換手順、作業後の後始末までを画像つきで紹介します。

Search Replace DBでできること

Search Replace DBは、WordPressのデータベース内にある文字列を検索し、別の文字列へまとめて置き換えられる無料のツールです。投稿本文だけでなく、テーマやプラグインの設定情報など、シリアライズされたデータを含むデータベース全体を対象に、安全に値を書き換えられる点が大きな特徴です。SSL化に伴うURLの変更や、ドメイン変更、サーバー移転の際によく利用されています。

phpMyAdminからSQL文を直接実行して置換する方法もありますが、データの構造を意識せずに済む分、Search Replace DBのほうが手軽に扱えます。とはいえデータベースを直接書き換える強力なツールであることに変わりはないため、使い終えたら必ずサーバーから削除する必要があります。

公式サイトからツールを入手する

まずはSearch Replace DBの公式配布ページ(英語)を開きます。英語表記がわかりにくい場合は、Chromeの右クリックメニューから「日本語に翻訳」を選択すると読みやすくなります。

Search Replace DBの公式配布ページ

このツールはページ上から直接ダウンロードする形式ではなく、メールアドレスを登録してダウンロード用のリンクを受け取る仕組みになっています。

登録フォームには、次の3つの確認事項にチェックを入れる欄が用意されています。

  • このスクリプトはセキュリティ上のリスクになり得ること
  • 一般公開のWebサーバー上に置きっぱなしにしないこと
  • 自分が何をしているか理解している開発者であること

3項目すべてにチェックを入れると、メールアドレスの入力欄が表示されます。アドレスを入力して送信しましょう。

Search Replace DBのメールアドレス登録フォーム

届いたメールからツールをダウンロードする

登録したメールアドレス宛てに、英語のメールでダウンロードリンクが届きます。受信トレイに見当たらない場合は、迷惑メールフォルダも確認してみてください。しばらく待っても届かない場合は、フォームに戻ってもう一度送信してみましょう。

Gmailを使っている場合は、メール上部に表示される「翻訳されたメッセージを表示」をクリックすると、内容を日本語で確認できます。

Search Replace DBのダウンロードリンクが記載されたメール

メール本文中のリンクをクリックすると、ツール一式が入ったzipファイルをダウンロードできます。

メール本文に記載されたダウンロードリンクの位置

解凍したフォルダをサーバーへアップロードする

ダウンロードしたzipファイルを解凍すると、「Search-Replace-DB-master」というフォルダが出てきます。これをFTPクライアント(FileZillaやFFFTPなど)を使って、WordPressのルートディレクトリへアップロードします。

WordPressのルートディレクトリとは、wp-adminwp-contentwp-includesといったフォルダやwp-config.phpが置かれている階層のことです。「Search-Replace-DB-master」フォルダごと、この階層にアップロードしてください。

FTPクライアントでWordPressのルートディレクトリにアップロードする様子

専用画面にアクセスする

アップロードが終わったら、ブラウザのアドレスバーに次のようなURLを入力してアクセスします。

https://あなたのサイトURL/Search-Replace-DB-master/

Search Replace DBの操作画面が表示されれば、準備は完了です。

SSL化を例にした置換の手順

Search Replace DBの操作画面

操作画面を開くと、wp-config.phpの内容をもとにデータベース接続情報があらかじめ入力された状態になっています。「database」欄に表示されているデータベース名が正しいか確認しておきましょう。

置換作業は、次の流れで進めます。

  • search for欄に置換前の文字列を入力する(例:http://example.com
  • replace with欄に置換後の文字列を入力する(例:https://example.com
  • まず「dry run」を実行し、変更対象の件数や内容を確認する
  • 内容に問題がなければ「live run」を実行し、実際に置換を反映させる

「dry run」は実際のデータを書き換えない確認用の実行モードです。想定どおりの件数・箇所が対象になっているかを必ずdry runで確認したうえで、「live run」を実行するようにしてください。

作業後はフォルダを必ず削除する

置換作業が終わったら、サーバーにアップロードした「Search-Replace-DB-master」フォルダをすぐに削除してください。操作画面に表示される「delete me」ボタンからも削除できますが、念のためFTPクライアントでフォルダが実際に消えているかを目視確認しておくと安心です。

このフォルダを置いたままにしておくと、第三者が同じURLにアクセスしてデータベースの内容を書き換えられてしまう危険があります。作業完了後の削除は、絶対に忘れないようにしましょう。

なお、サーバーへのファイルアップロードに抵抗がある場合は、WordPress管理画面の「ツール」からそのまま検索・置換を実行できる「Better Search Replace」プラグインを使う方法もあります。Search Replace DBと同じ仕組みをベースにしたプラグインで、dry run機能も備えているため、FTP操作に不慣れな方はこちらを検討してもよいでしょう。

まとめ

Search Replace DBを使えば、SQLの知識がなくてもWordPressのデータベース内のURLを一括で書き換えられます。SSL化やサイト移転の作業を効率化できる便利なツールですが、その分扱いには注意が必要です。本番反映の前には必ずdry runで内容を確認し、作業が終わったらフォルダを削除する、という2点を徹底しておきましょう。

このテーマの関連記事はこちら