wp-settings.php の最適化でプレビューが表示されないエラー

TOP Forums 使い方全般(Fixing KUSANAGI) wp-settings.php の最適化でプレビューが表示されないエラー

wp-settings.php の最適化でプレビューが表示されないエラー

Viewing 2 reply threads
  • Author
    Posts
    • #1117
      kuroda
      Participant

        初めまして。
        Wordpress管理画面でkusanagi settings>その他>wp-settings.php の最適化 を有効にして
        メディアライブラリにいくつか画像を追加したところ、外観>カスタマイズのプレビュー画面が表示されなくなりました。
        (左側のメニューは表示されています)
        また、サイト自体は表示されており、管理画面内のプレビュー画面のみが表示されない状態です。

        ・プレビュー画面に表示されているエラーメッセージ
        Fatal error: Cannot redeclare wp_get_additional_image_sizes() (previously declared in /home/kusanagi/xxx(プロファイル名)/DocumentRoot/optimized_wp_settings.php:988) in /home/kusanagi/xxx(プロファイル名)/DocumentRoot/wp-includes/media.php on line 19

        ・環境
        KUSANAGI Version 9.2.12-3.el8
        WordPress 6.1.1
        PHP 8.1.12
        nginx/1.23.2

        ・media.php on line 19の該当部分
        function wp_get_additional_image_sizes() {
          global $_wp_additional_image_sizes;  ←この部分が19行目です

          if ( ! $_wp_additional_image_sizes ) {
            $_wp_additional_image_sizes = array();
          }

          return $_wp_additional_image_sizes;
        }

        なお、wp-config.phpの最下部にはoptimized_wp_settings.phpを読み込む設定が書き込まれています。

        /** Sets up WordPress vars and included files. */
        if ( file_exists( ABSPATH . ‘optimized_wp_settings.php’ ) && ( ! defined( ‘WP_CLI’ ) || constant( ‘WP_CLI’ ) !== true ) ) {
        require_once(ABSPATH . ‘optimized_wp_settings.php’);
        } else {
        require_once(ABSPATH . ‘wp-settings.php’);
        }

        そもそもwp-settings.php の最適化が何をするものなのかわかっておらず
        エラーメッセージの対象部分のコードを見ても、どうしたら良いのかわかりません。
        解決方法がわかる方がいらっしゃいましたら、アドバイスいただけると幸いです。

      • #1118
        hideishi
        Participant

          kuorda さん、こんにちは。

          wp-settings.phpの最適化はかなりピーキーな最適化を行うオプションです。
          プラグインやテーマによっては動作しない場合がありますので、
          もしも表示に問題が出るならば無効にするようにしてください。

          PHP 8.0以降で採用されているJITコンパイラによる最適化をできるだけ受けられるように
          optimized_wp_settings.phpを生成します。
          ただ、このファイルの生成は管理画面で有効化したときにのみに行われるので、
          WordPressのアップデートやプラグイン、テーマの更新があっても更新されず、
          このファイルを削除して再生成する必要があります。
          有効にしてからしばらく時間が空いている場合は、これが原因の可能性が高いです。

          なお、PHP8.0以前の場合はあまり改善効果は見込めません。

          • #1119
            kuroda
            Participant

              hideishiさん、アドバイス頂き有難うございます。
              最初の質問への記載が漏れていましたが、無効にしてもプレビューが見れない状態です。

              Cannot redeclare ~ (previously declared in ~)とエラーが出ているので
              有効のチェックを外して(無効にして)変更を保存をしても、それが反映されていない状態なのかもしれません。
              (「正常に更新されました」のメッセージは出ます。)

          • #1120
            hideishi
            Participant

              無効にできていないようですね。
              optimized_wp_settings.php が残っていたら手で削除してみてください。
              また、wp-config.phpを以下のように修正してください。

              /** Sets up WordPress vars and included files. */
              require_once(ABSPATH . ‘wp-settings.php’);

              本来ならば

              /** Sets up WordPress vars and included files. */
              if ( file_exists( ABSPATH . ‘optimized_wp_settings.php’ ) && ( ! defined( ‘WP_CLI’ ) || constant( ‘WP_CLI’ ) !== true ) ) {
              require_once(ABSPATH . ‘optimized_wp_settings.php’);
              } else {
              require_once(ABSPATH . ‘wp-settings.php’);
              }

              にあるように optimized_wp_settings.php か wp-settings.php のどちらかしか読み込まれないはずなのですが、
              プラグインかテーマか何かが干渉しているのか、media.phpが二重に読み込まれているのがエラーの原因です。

              • #1121
                kuroda
                Participant

                  ありがとうございます。
                  アドバイス頂いた通りに設定したところ、無効化され、元通りプレビュー画面が表示されるようになりました。

                  元々、wp-settings.php の最適化を有効にする際に
                  「wp-config.phpの書き込み権限がありません。httpdユーザーが書き込みできるようにwp-config.phpの権限を変更してください。」とメッセージが出てきたので
                  本来はkusanagi推奨セキュリティ(オーナーはkusanagi(グループはwww))、パーミッション0440だったのですが
                  パーミッションを0660に変更しました。

                  色々試してみると、そのあたりが色々影響してそうな感じがしますが、
                  よくわからないのでこれ以上は深入りせずにおこうと思います。

                  ご助言いただき大変ありがとうございました。

                  • This reply was modified 2 years ago by kuroda.
            Viewing 2 reply threads
            • You must be logged in to reply to this topic.

            Next article

            フォーラムについて