【WordPress】「Search Replace DB」でphpのエラーが出た時の対処方法!

みなさん、こんにちは。
「Search Replace DB」をご存知でしょうか。
「Search Replace DB」はデータベース内の文字を置換することができるツールです。
「PHP 7.3.6」の環境で使用しようとしたところ以下のエラーが発生しました。
Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /●●●/Search-Replace-DB-master/srdb.class.php on line 861 Warning: Cannot modify header information - headers already sent by (output started at /●●●/Search-Replace-DB-master/srdb.class.php:861) in /●●●/Search-Replace-DB-master/index.php on line 419
このエラーの解決方法をご紹介します。
Contents
「Search Replace DB」とは?
WordPressをテスト環境から本番環境に移す時などDB内のURLを置換する際に使用することが多いです。
MySQLなどでURLを書き換えれば良いのではないかと思ったりもしますが、WordPressのDBにはシリアライズ化されたデータが含まれているため通常の置換ではプラグインの動作などに不具合がでる可能性があるそうです。
「Search Replace DB」を使用してURLの置換を行うとシリアライズ化されたデータにも対応した処理を行なってくれるためすごく便利なのです。
ダウンロードは公式サイトからできます。
サーバーにアップするとエラーが出るように
以前までは正常に動作していましたが上部にエラー文言が表示されるようになりました。
エラー文言で検索してみると「PHP 7.3」から使えなくなった記述があるのが原因だとわかりました。
さくらインターネットのレンタルサーバーを使っていたのですが、PHPのマイナーバージョンアップデートが自動で行われたための様です。
そこで2通りの解決方法があるかと思います。
- エラーの原因となっている記述を変更する。
- phpのバージョンを下げた環境で使う。
今回は「phpのバージョンを下げた環境で使う」で対応する方法をご紹介します。
PHPバージョンを変更する方法
大体のレンタルサーバーはコントロールパネルからドメイン単位でPHPのバージョンを指定することが可能となっています。
ですが、すでにPHPを利用しているサイトを運用している場合においては、PHPのバージョンを変更することで不具合が生じる可能性があるためドメイン単位でのPHPバージョン変更は控えておいた方が無難です。
レンタルサーバーによってはディレクトリごとにPHPのバージョンを変更をすることが出来ます。
今回は「さくらインターネット」のレンタルサーバーでのディレクトリごとにPHPのバージョンを変更する方法をご紹介します。
「さくらインターネット」のレンタルサーバーでディレクトリごとにPHPのバージョンを変更する方法
ルート直下の「php5」というディレクトリを作成して、その中のPHPバージョンを変更してみます。
用意するファイルは「.htaccess」、「php.cgi」の2種類です。
それぞれ以下のように記述します。
.htaccess
Action myphp-script /php5/php.cgi AddHandler myphp-script .php .html
php.cgi
PHP 5.6 に指定しています。
※レンタルサーバーによって使用できるPHPのバージョンは異なります。
#!/bin/sh exec /usr/local/php/5.6/bin/php-cgi
「.htaccess」、「php.cgi」を「php5」内にアップロードします。
「php.cgi」のパーミッションを705に変更します。
これで完了です。
確認方法
PHPのバージョンが変更が出来ているか確認する場合は「info.php」というファイルを作って以下のように記述します。
<?php phpinfo(); ?>
このファイルを「php5」内にアップロードしてこのファイルにアクセスするとPHPのバージョンを確認することが出来ます。
PHPのバージョンを下げることで「Search Replace DB」が正常に動作するように!
PHPのバージョンを変更して「Search Replace DB」にアクセスするとエラーが無くなり正常に動作するようになりました。
「Search Replace DB」での作業が終わったらPHPのバージョンを戻すのを忘れない様にしましょう。
アップデートが来れば新しいバージョンのPHPにも対応されると思うので、アップデートを待ちつつこんな感じで対応していくしかなさそうですね。
参考サイト

この記事が気に入ったらいいね!で
最新記事をお届けします