PHP8へのアップグレード時に500エラーが発生する

 
  • ES
  • RU
  • CN
  • PT
  • DE
  • FR
  • EN
  • 昨年11月に PHP 8上陸。パフォーマンス、スピード、セキュリティのいくつかの改良を発表した。

    他の優秀ないじり屋と同様、私は急いで7.4から PHP 87.4、具体的には7.4.16、現在サーバー上で動作しているバージョンにアップグレードしました。

    ぷろふ!素敵な500エラーが出迎えてくれて、サイト全体が壊れました。

    PHP8へのアップグレード時に500エラーが発生する

    PHP 8にアップグレードするとWordPressで500エラーが発生する

    URLが解決されない。 を実行しました。典型的なテストを実行して、すべてのプラグインを無効にして、デフォルトのテンプレートを使用するようにしました。

    500エラーが消えない。ショックでしたが、まだアップデートは早い、アドバイス通り、すべてのプラグインやテンプレートの作者がPHP 8に対応するようにコードを更新するのを待つのが一番だと納得してその場をやり過ごしました。

    それから約7カ月後、もう一度試してみましたが、500エラーはまだ残っていました。エラーの原因がこのブログだけであることを示す最初の手がかりは、同じサーバーにある他の2つのWordPressインストールではすべてが正常に動作していることです。

    500エラーは様々な理由で発生する可能性がある。次のステップは、何が問題なのかを見つけるために、エラーログを取得することです。次のような警告の文字列が表示されます。

    PHP Warning:Use of undefined constant minor – assumed ‘minor’ (this will throw an Error in a future version of PHP) in /home/xxxxxx/public_html/blog/wp-config.php on line 11

    つまり、定数は引用符で囲むことになっています。wp-config.phpにアクセスしてみると、確かにその行では引用符なしでminorが表示されています。

    define (‘WP_AUTO_UPDATE_CORE’, minor)とあります。

    WordPressのフォーラムを検索すると、多くの人がプラグインやテンプレートとの競合のためにPHPの古いバージョンにアップグレードして、これと同じ問題を抱えていることがわかります。

    この問題は、WordPressのインストールに関連するもので、何かが壊れている可能性は否定できません。 ルーカスホスト.

    に寄せられた回答の中には、問題を解決するには「minor」に逆カンマを追加すればよいというものもあるので、試してみると

    define (‘WP_AUTO_UPDATE_CORE’, ‘minor’)

    WP_AUTO_UPDATE_COREは、マイナー、メジャー、開発バージョンの WordPress コアアップデートを制御することができます。この定数は、いくつかの方法で定義することができます。この行を削除するのは良いアイデアではありません。

    #Disables all core updates:

    define( ‘WP_AUTO_UPDATE_CORE’, false );

    # Enable all updates, including minor and major updates:

    define( ‘WP_AUTO_UPDATE_CORE’, true );

    # Enables minor updates:

    define( ‘WP_AUTO_UPDATE_CORE’, ‘minor’ );

    良い知らせと悪い知らせ

    良いニュースは、PHP8を実行している今、500エラーがなくなったことです。プラグインも投稿も、一見するとすべてうまくいっているように見えます。悪いニュースは、インデックスが壊れており、以下のような状態になっていることです。

    PHP8へのアップグレード時に500エラーが発生する

    を先に攻めることにしました。 投稿テンプレート で作られた Elementor Pro は、ビルダーが何か隠れたガラクタを残していたかもしれないと思い、最初に攻撃することにした。しかし、それを見直して完全にやり直した結果、エラーがそこから発生していることは除外された。

    今はまだテスト環境でテンプレート(GeneratePressプレミアム) をテスト環境で調べていて、少なくともどこで壊れているかは分かっているのですが、ほとんどWordPressの中を見ていて、そこが問題の核心だと思うのです。

    誰かが同じような問題を抱えていて、それが役に立つかもしれないし、ここに書いたことが役に立つかもしれないし、WPに詳しい人がいて、解決の糸口をもっと教えてくれるかもしれないので、このメモをここに残しておく。決定的な修正方法と考えられる説明が見つかり次第、この記事を更新します。

    関連する WordPressとPHP8.0.変 更、開発、その他の問題点のリスト

    を読む 完全アップグレードドキュメント


    Suscríbete por email para recibir las viñetas y los artículos completos y sin publicidad

    Artículos relacionados