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から実行することで回避可能です。作業ディレクトリを正しく指定して、安全に置換を完了させましょう。


