鶏口牛後な日々

心の赴くまま、やりたいことを仕事に。

Wordpressを設置しているドメインを変更したときやるべきURLの置換(Search Replace DBの使い方メモ)

Wordpressドメインを変更しました。

それに伴い、URLが変更になったわけですが、一個一個変更している訳にもいきません。

これを一気に変更してくれるSearch Replace DBという大変便利なツールを見つけたので、使ってみました。

こちらの方が使い方を説明してくださっていたのですが、実際にサイトに行ってみると、色々とアップデートされていたので、今後同じようなことがあったときのために、メモとして残しておきます。

ダウンロード

まず、本家の公開されているサイトに行くと、その場でダウンロードできるのではなく、メールアドレスと氏名を入力して、送られて来たメールにダウンロードリンクが付いている、という形になっていました。

このツールは、DBを書き換えることができる、使い方によっては危険なツールである、ということで、サイトではとにかくよくわからない人は使わないでプロに頼むように、といった注意書きが複数見られました。

メールアドレスを入力させてダウンロードリンクからダウンロードするというのも、あまりにも簡単にダウンロードできないようにするための方策の一つなのかな、と思いました。

サーバに設置

メールが送られて来てダウンロードリンクをクリックすると、「Search-Replace-DB」というフォルダに、 index.phpsrdb.class.phpsrdb.cli.php などが入っています。

基本的に必要なのはこの3つで、ほかに package.jsoncomposer.jsonREADME.mdsrdb_tests というフォルダが入っています。

サーバのWordpresswp-config.php ファイルがあるのと同じ階層に、適当な名前のフォルダを作って、先ほどの3つのファイルを配下におきます。

f:id:TACOSVilledge:20191021195543p:plain

このとき、作るフォルダ名は、パッとはsearch-replace-dbとはわからないぼやかした名前にすること、と本家のサイトに書かれていました。

なにせ見つかってしまって悪用されると大変なことになるという懸念からだと思われます。

設置したら、ファイル(index.php)にアクセスします。

このとき、置いてすぐアクセスすると、まだ反映されていない場合があるので、数分は待ったほうがいいかもしれません。

「え、なんでなんで、なんでアクセスできないの!?」と無駄にパニックになります。(初心者にありがちです =私)

アクセスすると、あとは検索したい語句と置換したい語句を入れるだけ!

Search-Replace-DBの画面

DBのホスト、ユーザー、データベース名、パスワードは、 wp-config.php と同階層に置いておくと、その中から読み取って自動で表示してくれるようです。

DBのバックアップをしっかり取ること

ここで、早速検索語と置換語を入れてはいけません!!!

まずはDBのバックアップを取っておきましょう。

私はさくらインターネットに設置しているので、phpMyAdmin画面からエクスポートしました。

余談ですが、webサーバのなかに設置しているデータベースには、SequelPro等のデータベースアクセスアプリケーションからはアクセスできないことが多いらしいです。

さくらインターネットにSequelProから接続を試みましたができませんでした。

phpMyAdminからアクセスします。

ここでちゃんとバックアップを取っておかないと後悔することになります。

私は、検索語だけ入れると検索結果の一覧を出してくれるのかな? と思い、置換語を空のまま実行してみたところ、検索語が削除されるという結果になりました!

もちろんすぐエクスポートして置いたSQLをインポートしてことなきを得ましたが、ひやっとしました。

あとは置換するだけ

気を取り直して、

ちゃんとバックアップをったら、あとは検索語と置換語を間違えずに入れたら、 dry run だそうです。

コマンドラインでもできる

コマンドラインでも使用できます。(私はこちらで実行しました)

サーバ上に設置したフォルダにcdします。

そこで

php srdb.cli.php -h <ホスト名> -n <データベース名> -u <ユーザー名> -p <パスワード> -s <検索語> -r <置換語>

という感じで使うようです。

基本のことは README.md に書いてあるので、一読すると良いと思います。

これでサクッとURLの変更ができました!

ファイル削除を忘れずに

サーバにアップしたSearch-Replace-DBのフォルダはちゃんと削除しておきます。

外に開かれているサーバだったら、誰でもそこからDBをいじれてしまいます。

確実に削除しておきましょう。

以上。メモでした。