「Search and Replace DB(SRDB)」をCLIで実行する方法

Search and Replace DB(SRDB)とは

Search and Replace DB(SRDB)は、WordPressのデータベース内の文字列を安全に置換するためのPHPスクリプトです。主にドメイン変更やサーバー移転時に使用されます。

なぜこのツールが必要なのか

WordPressのデータには、「シリアル化(Serialized Data)」という形式で、文字数情報を含んだ状態で保存されている箇所があります。通常のSQLコマンドで置換を行うとこの文字数カウントがズレてしまい、サイトが正常に表示されなくなります。

SRDBは、この文字数も自動で計算し直して置換してくれるため、データベースを壊すことなく安全に作業を進めることができます。

SRDBで「AJAX request」エラーが発生した場合の解決策

旧バージョンのSRDBをサーバーに設置し、ブラウザ(GUI)から置換を実行しましたところ、途中で以下のエラーが発生し、処理が止まってしまいました。

The script encountered an error while running an AJAX request.

このエラーは、ブラウザを介した通信制限やタイムアウトによって発生します。確実に置換を完了させるには、最新バージョンのスクリプトを入手した上で、「CLI(コマンドライン)」から実行する方法が有効です。

解決策:CLI(コマンドライン)で実行する

MAMP環境などターミナルが使用できる環境であれば、以下の手順で実行します。ブラウザの通信エラーに左右されず、非常にスムーズに処理が完了します。

実行コマンドの流れ(MAMP環境の例)

ターミナルを開き、解凍したSRDBのディレクトリ内へ移動してから実行します。ディレクトリの外から実行するとファイルが見つからずエラーになるため注意してください。

/* 1. SRDBのディレクトリ(srdb.cli.phpがある場所)へ移動 */
cd /Applications/MAMP/htdocs/(設置場所)/Search-Replace-DB-master

/* 2. まずはテスト実行(Dry Run)で置換対象の件数を確認 */
/Applications/MAMP/bin/php/php7.4.33/bin/php srdb.cli.php -h localhost:8889 -u root -p root -n [データベース名] -s "https://old-domain.co.jp" -r "http://localhost:8081"

/* 3. 結果に問題がなければ、末尾に -run をつけて本番実行 */
/Applications/MAMP/bin/php/php7.4.33/bin/php srdb.cli.php -h localhost:8889 -u root -p root -n [データベース名] -s "https://old-domain.co.jp" -r "http://localhost:8081" -run
成功のためのポイント

  • 実行ディレクトリ: 必ず srdb.cli.php が存在するディレクトリまで cd コマンドで移動してから実行してください。
  • ポート番号の指定: MAMPを使用している場合、ホスト名は localhost:8889 のように、設定されているポート番号を含める必要があります。
  • 最新バージョンの使用: 旧バージョンでエラーが出る場合でも、最新バージョンのスクリプトを使い、CLIから実行することで解決するケースが多くあります。
オプション 内容
-h データベースホスト(MAMPは localhost:8889)。
-n データベース名。
-u / -p DBユーザー名 / パスワード(MAMP初期値は root)。
-s / -r 置換前の旧文字列 / 置換後の新文字列。
-run 実際にデータベースの書き換えを実行します。

よくある質問(トラブルシューティング)

「Could not open input file: srdb.cli.php」というエラーが出ます
実行しているディレクトリが間違っている可能性があります。ドキュメントルート等ではなく、必ず srdb.cli.php ファイルが置かれているディレクトリ(Search-Replace-DB-masterフォルダ内など)へ cd コマンドで移動してから実行してください。
置換が終わった後にやるべきことはありますか?
【最重要】設置したSRDBのディレクトリを完全に削除してください。 放置すると外部からデータベースを自由に操作・破壊される極めて深刻な脆弱性となります。作業後の削除は必須の工程です。
ドメイン置換後にサイトの一部でリンクが切れています
ブラウザのキャッシュが残っているか、.htaccessの更新が必要な場合があります。WordPress管理画面の「設定 > パーマリンク設定」を開き、何も変更せずに「変更を保存」ボタンを一度押すことで解決する場合があります。

まとめ

ブラウザ版でのAJAXエラーは、最新版のSRDBを使用し、CLIから実行することで回避可能です。作業ディレクトリを正しく指定して、安全に置換を完了させましょう。

CONTACT

webサイト制作、デザインに関するご相談、御見積のご依頼など、弊社へのお問い合わせはこちら