WordPress Tips

Search Replace DBでエラーが出たときの解決方法

2022-04-30

本記事にはプロモーションが含まれています。

Search Replace DBでエラーが出たときの解決方法

ソラミ♪

Webエンジニアをやりつつ、デザインにも携わる株式会社コムワークの中の人。WordPress、Adobeアプリ、カワウソ好き。 2015年から当ブログ運営|2008年からGmail使用中|WordPress制作10年以上|15社以上のレンタルサーバー利用経験|100件以上のドメイン取得運用|サイト・ドメイン移転多数 »  もっとくわしく

Search Replace DBはWordPressのデータベースの内容をDBをいじらずに検索置換してくれる便利なプログラムです。一括でURLを変更したいときなどに重宝しています。

そのSearch Replace DBでWordPressURLを検索置換しようとしたところエラーに遭遇。

The script encountered an error while running an AJAX request.
If you are using your hosts file to map a domain try browsing via the IP address directly.
If you are still running into problems we recommend trying the CLI script bundled with this package.
See the README for details.

Ajaxのエラー?のようです。以下Google翻訳してみました。

AJAX リクエストの実行中にスクリプトでエラーが発生しました。
hosts ファイルを使用してドメインをマップしている場合は、IP アドレスを介して直接参照してみてください。
それでも問題が発生する場合は、このパッケージにバンドルされている CLI スクリプトを試してみることをお勧めします。
詳細については、READMEを参照してください。

メッセージの内容では、hostsファイルを使用してドメインをマッピングしている場合、直接IPアドレスを使用してアクセスしてみてと言っています。→しかし今回はhostsファイルを使っていないため当てはまらず。

それでも問題が発生する場合はCLIスクリプトを試してとのありますがコマンドラインではなくGUIでなんとかしたいのでスルーしさらに調べてみると

PHPのバージョンを落とすことでエラー解消できる

との記事をみつけました。

確認してみると私が使っていたSearch Replace DBはバージョンがv3.1.0で最新はバージョン4がリリースされていたので、最新版を改めてダウンロードしました。

最新版v4.1.3を改めて設置してみたら、エラーが出ずに置換できました。(因みにPHPバージョンは7.4です)

他のサイトではPHP7.4や7.3で、v4が動かないという記事もあったのですが私の場合は置換成功しました。

もし同じようなエラーの場合は、SearchReplaceDBのバージョンを確認してみて最新版を使ってみたら解決するかもしれません。

後日わかったことですが、githubのページにもAjaxメッセージについて記載がありました。

I get a popup saying there was an AJAX error

This happens occasionally and could be for a couple of reasons:
これは時々発生しますが、次のような理由が考えられます。

When the script starts, it attempts to start your WordPress or Drupal installation to auto-detect your username and password settings. If this fails, you will see a message informing you that auto-detection failed. You will have to enter your details manually.
スクリプトが開始されると、WordPress または Drupal のインストールを開始してユーザー名とパスワードの設定を自動検出しようとします。これが失敗した場合は、自動検出が失敗したことを通知するメッセージが表示されます。詳細を手動で入力する必要があります。

Script was unable to set the timeout so PHP closed the connection before the table could be processed, this can happen on some server configurations.
スクリプトがタイムアウトを設定できなかったため、テーブルが処理される前に PHP が接続を閉じました。これは一部のサーバー構成で発生する可能性があります。

https://github.com/interconnectit/Search-Replace-DB?tab=readme-ov-file#i-get-a-popup-saying-there-was-an-ajax-error

WordPressのユーザー情報の自動検出に失敗したり、スクリプトがタイムアウトしてしまったりするとポップアップメッセージが表示される?ということでしょうか。

一時的な問題のようにも思えます。

他にも、Wordfenceプラグインのテーブルを除外したら、すんなり解決したという記事もありました。

特定のデータベーステーブルを除外する場合は、Which Tables?の項目でselect tablesを選択します。すると、下にデータベーステーブル名が表示されるので、検索置換対象のテーブルを選択します。

複数選択はCmd+クリックまたはShift+クリックです。(Macの場合)WindowsはCtrl+クリックだったかな?

以上、Search Replace DBでエラーが出た時の対処法について記載しましたが、最近は専らWP-CLIで検索置換しているのでSearch Replace DBはほとんど使わなくなっています。。。

WP-CLIのコマンドを覚えると便利すぎて離れられなくなります^^

  • この記事を書いた人
  • 最新記事

ソラミ♪

Webエンジニアをやりつつ、デザインにも携わる株式会社コムワークの中の人。WordPress、Adobeアプリ、カワウソ好き。 2015年から当ブログ運営|2008年からGmail使用中|WordPress制作10年以上|15社以上のレンタルサーバー利用経験|100件以上のドメイン取得運用|サイト・ドメイン移転多数 »  もっとくわしく

-WordPress Tips