質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.22%

Search-Replace-DBを実行すると「500 Internal Server Error」になる

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 126

gaugau

score 0

はじめまして。
はじめてなので、失礼があるかもしれませんが、どうぞご容赦ください。
似たような質問がないか検索しましたが、無かったようなので、質問します、ご容赦ください。
(質問しようかどうか散々悩みました…)
恥をしのんで質問します。

WordPress初心者です。
「WordPressデザインレシピ集」という本を3~4周くらいした程度です。

結論からいうと、

  • Search-Replace-DBを実行すると「500 Internal Server Error」になる

です。
もう一か月以上も解決出来ず悩んでいます。

経緯を説明します(すみません、少々長いです)。

スターサーバフリーに無料サイトを作り、本を読みながら色々いじっていました。
また、先の本の最後の方に「ローカル(PC)でもWordPressのサイトを構築出来る」と書かれていたので、Local by Flywheel(以下Local)をインストールして、そちらでも色々いじっていました。

いじっていると、Localから実サイトに、実サイトからLocalに、環境をコピーしてみたいと思うようになりました。
そこで色々調べてみたら、ひとつは、

  1.  データベースのコピー
  2.  ファイルやディレクトリのコピー
  3.  データベースを書き換えるため、Search-Replace-DBというツールを使う

もうひとつは、

  • All-in-One WP MigrationやDuplicatorのようなプラグインを使う

ということが分かりました。

そこで、先ずはひとつめを試すため、実サイトからLocalに、環境をコピーしてみました。
データベースのコピーと、ファイルやディレクトリのコピーです.
データベースはphpMyAdminでエクスポートしたものを、ADMINERでインポート。
ファイルやディレクトリはFTPで、実サイトのものをそのままダウンロード。
Search-Replace-DBのv3.1.0やv2.1.0を実行してもうまくいかず、その旨作者に問い合わせたら、
「開発中の新しいバージョンがある」と、v4.0のダウンロードリンクとともに回答がきました。
そこで、v4.0をダウンロードして実行してみるとうまくいきません。
v4.0のソースを眺めていると、Windowsでは動作しなさそうな箇所が数か所あったので、そこをWindowsでも動くであろうようにソースを変更しました。
そしてSearch-Replace-DBを実行したら、無事データベースの書き換えは出来ました。
実サイトからLocalへの環境のコピーは成功しました。

そこで、Localから実サイトへの環境のコピーもしてみようと思いました。
実サイトからLocalにコピーするのと同様の手順で環境をコピーしました。
しかし、Search-Replace-DBで

500 Internal Server Error


となってしまいました。
そこで、Search-Replace-DBの最新のもの(現在はv4.1.2)をダウンロードして実行してみましたが、これでも同じく「500 Internal Server Error」となり、駄目でした。
最新のSearch-Replace-DBは、私が教えてもらったv4.0とはソースががらりと変わっていて、ソースを追えていません。
作者に再度うまくいかない旨質問したら、「おま環問題」との回答。
ここを見ると、'.htaccess'に「○※一部制限あり」とあるので、スターサーバフリーではうまくいかないのかと思い、XFreeにも無料サイトを作って、WordPressをインストールして、最新のSearch-Replace-DBをコピーして実行してみました。
しかし、XFreeでも「500 Internal Server Error」になります。
XFreeの方は、WordPressをインストールして、いくつかセキュリティ関係のプラグインをインストールしている程度です。
XFreeは試しにSearch-Replace-DBが実行出来るか確かめるために、特にあまり触ってません。

Localで最新のSearch-Replace-DBを実行してみましたが、問題なく実行出来ました。

Search-Replace-DBを実行する際は、スターサーバフリーでも、XFreeでも、プラグインは全て停止して実行しています。
また、パーマリンク設定を保存して、'.htaccess'を更新したりしています。

実サイトとLocalの違いといえば、

  • Localには'.htaccess'が存在しない(パーマリンク設定を保存しても生成されない)
  • Localの仮想空間に入れないので、パーミッションなどがどうなっているかよく分からない

くらいしか無いという認識です。

最初は色々検索して、こことかこことかを見ていたのですが、どうもWordPressの問題のようなので、検索しなおして、こことか、こことか見ましたが、v2.1.0を使うと書いてあって、他にも検索して探してみましたが、私が欲しいと思う答えやヒントが載ってるサイトは見つかりませんでした。

無料サイトなので、サーバのログ(エラーログなど)は見られません。
なので、何がどう悪いのか、どこをどうなおせばいいのかの確認が出来ません。

最新のSearch-Replace-DBの中にある'.htaccess'を削除して実行すると、右上に「x Close」と表示されるだけです。
('.htaccess'を削除せず実行すると「500 Internal Server Error」になります)
また、Search-Replace-DB v3.1.0を実行しても、上記と同じように右上に「x Close」が表示されるだけです。
ここに同様の質問がありましたが、未解決のまま終わっているようです。

ここでも同様の質問をしたのですが、回答やヒントが得られていない状態です。

実サイトのサーバのPHPのバージョンを一時的にv5.6に落として、Search-Replace-DB v2.1.0を実行すれば、一応実行は出来ます。
しかし本質的、根本的な解決にはなってないような気がします…。

環境を書いておきます。


ローカルPC

  • OS:Windows10 Pro 64bit 1909
  • Local by Flywheel:v5.4.1(v5.0.7から使っています)
  • WordPress:v5.4.1(v5.2.2辺り?から使っています)
  • PHP:v7.4.1
  • DB: MySQL v8.0.16


スターサーバフリー

  • WordPress:v5.4.1
  • PHP:v7.4.3(v5.6.40に変更可)
  • DB: MySQL v5.7


XFree

  • WordPress:v5.4.1
  • PHP:7.2(v5.6に変更可)
  • DB:MariaDB v5.5.64

一時的に実サイトのサーバのPHPのバージョンをv5.6に落として、Search-Replace-DB v2.1.0を使うしかないのでしょうか。
もしくは、All-in-One WP MigrationやDuplicatorのようなプラグインを使うしかないのでしょうか。
最新のSearch-Replace-DBを使うのは難しいのでしょうか。

ヒントでも結構ですので、何かご存じの方、ご教授頂けないでしょうか。
以上宜しくお願い致します。

追記です。
「エラーログを提示して」とのコメントを頂きましたが、本文中にも書いている通り、無料プランだとログ関係(エラーログなど)は見られません。
どこにあるかも分かりませんし、教えてももらえません。
設定画面にもログ関係の項目はありません。
なので困っています。
(有料プランならログ関係は見られるようですが…)

更に追記です。
スターサーバフリーの方はApache v2.4.6です。
XFreeはApache v2.2です。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • m6u

    2020/05/22 15:59

    第三者に見せる必要がなければ、パソコン上でローカルサーバーを作ります。
    apache httpdでバーチャルホスト機能を駆使してもいいですし。
    セキュリティ的にハードルが高いですが、
    自宅PCをルーターにおけるDMZ領域において動的DNSサービスと組み合わせて
    ネット上に公開することもできなくもないです。

    キャンセル

  • m6u

    2020/05/22 16:01

    学習目的であれば、paiza.ioやconohaなど時間で課金されるサービスを利用するのもありです。

    キャンセル

  • gaugau

    2020/05/25 16:12

    m6u 様
    返信ありがとうございます。

    そういうサービスもあるのですね。
    勉強になります。
    ちょっと調べてみようと思います。

    キャンセル

回答 2

0

500エラーになるのは.htaccessに記載の内容(Options -Indexes)にサーバが対応してないからだと思います。

右上に「x Close」とだけ表示されるのは、PHPが途中でエラーになってHTMLが不完全に出力されているからだと思います。
その状態のときにブラウザでHTMLソースを確認してみてください。
HTMLソース内のどこかにERRORとかWARNINGが出ていると思います。

Search-Replace-DB v3.1.0 と PHP7.3以降 の組み合わせの場合は
PHP7.3からswitch~case文中のbreakとしてのcontinueがWARNING扱いになったため
srdb.class.phpの中でWARNINGが発生するようになったようです。
https://prawn-cocktail.com/blog/1107/

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/05/25 16:32

    shun-K 様
    返信ありがとうございます。

    成程、サーバが、Search-Replace-DBの中の.htaccessに記述されている「Options -Indexes」に対応してないからなのですね。
    まあ無料サイトですし、運営に色々言える訳でもないので、対応してないなら我慢するしかないです。

    https://prawn-cocktail.com/blog/1107/
    このサイトは私も見ました。
    他にも、PHP7.3と、breakとcontinueの問題は、いくつかのサイトで見ましたが、どこで見たかはちょっと思い出せないです、すみません…。

    Chromeで実行して、「x Close」が表示された状態で、ソースを確認すると、Warningで「バックアップとれ」とか「気をつけろ」とか(Search-Replace-DB v3.1.0とv4.1.2)とか、「httpsじゃない」(v4.1.2)とかは見られましたが、それ以外は特にありませんでした。
    Errorも探してみましたが、特にソースにはありませんでした。
    Search-Replace-DB v3.1.0を実行したときに、一瞬breakとcontinueのエラーが表示されましたが、すぐに「x Close」になってしまいました。
    v4..1.2は確認する間もなく「x Close」になってしまいます…。

    https://server-recipe.com/578/
    ここのサイトを眺めていると、Search Regex プラグインというのもあるんですね、はじめて知りました。

    サーバがSearch-Replace-DBの中の.htaccessに記述されている「Options -Indexes」に対応してないのであれば、現状での私の環境では、PHPのバージョンをv5.6に一時的に落とした上でSearch-Replace-DB v2.1.0を使うか、All-in-One WP MigrationやDuplicatorやSearch Regexといったプラグインを使うかしかないようです。

    返信ありがとうございました。

    キャンセル

  • 2020/05/25 16:41

    すみません、間違えました。

    https://server-recipe.com/578/
    ではなく、
    https://server-recipe.com/2246/
    でした、すみません。

    キャンセル

0

エラーログがないからわからないと言われていますが、ログファイルでなくても実行時に画面にエラーメッセージを表示させることは PHP の設定で可能です。

エラーログが見れない環境であれば、PHP のエラーを画面に表示してデバッグする必要があります。

display_errors に記載されているように設定して実行するとエラーが表示されないでしょうか。


また、XFREE の場合は、公式マニュアルに PHPエラー表示設定 の項目がありますので、コントロールパネルで設定すると画面にエラーメッセージを表示することはできると思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/05/26 13:58

    CHERRY 様
    返信ありがとうございます。

    先の質問内に書くのを忘れていましたが、スターサーバフリーとXFreeのサーバの設定(php.iniの設定)で、display_errorsはOn(有効)になっています。
    それなのにエラーやワーニングが出ないのはおかしいなあとは思ってはいたのですが…。
    XFreeの方は、まさにご提示頂いたURLの通りにdisplay_errorsの設定をしているのですが…。
    他に何か設定が必要なのでしょうか…。
    ちょっと調べてみます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.22%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる