wp-settings.php の最適化でプレビューが表示されないエラー
TOP › Forums › 使い方全般(Fixing KUSANAGI) › wp-settings.php の最適化でプレビューが表示されないエラー
wp-settings.php の最適化でプレビューが表示されないエラー
- This topic has 4 replies, 2 voices, and was last updated 1 year, 11 months ago by kuroda.
-
AuthorPosts
-
-
2022年12月8日 at 06:04 #1117
初めまして。
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 の最適化が何をするものなのかわかっておらず
エラーメッセージの対象部分のコードを見ても、どうしたら良いのかわかりません。
解決方法がわかる方がいらっしゃいましたら、アドバイスいただけると幸いです。 -
2022年12月8日 at 09:39 #1118
kuorda さん、こんにちは。
wp-settings.phpの最適化はかなりピーキーな最適化を行うオプションです。
プラグインやテーマによっては動作しない場合がありますので、
もしも表示に問題が出るならば無効にするようにしてください。PHP 8.0以降で採用されているJITコンパイラによる最適化をできるだけ受けられるように
optimized_wp_settings.phpを生成します。
ただ、このファイルの生成は管理画面で有効化したときにのみに行われるので、
WordPressのアップデートやプラグイン、テーマの更新があっても更新されず、
このファイルを削除して再生成する必要があります。
有効にしてからしばらく時間が空いている場合は、これが原因の可能性が高いです。なお、PHP8.0以前の場合はあまり改善効果は見込めません。
-
2022年12月8日 at 11:26 #1119
hideishiさん、アドバイス頂き有難うございます。
最初の質問への記載が漏れていましたが、無効にしてもプレビューが見れない状態です。Cannot redeclare ~ (previously declared in ~)とエラーが出ているので
有効のチェックを外して(無効にして)変更を保存をしても、それが反映されていない状態なのかもしれません。
(「正常に更新されました」のメッセージは出ます。)
-
-
2022年12月8日 at 12:17 #1120
無効にできていないようですね。
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が二重に読み込まれているのがエラーの原因です。-
2022年12月9日 at 16:40 #1121
ありがとうございます。
アドバイス頂いた通りに設定したところ、無効化され、元通りプレビュー画面が表示されるようになりました。元々、wp-settings.php の最適化を有効にする際に
「wp-config.phpの書き込み権限がありません。httpdユーザーが書き込みできるようにwp-config.phpの権限を変更してください。」とメッセージが出てきたので
本来はkusanagi推奨セキュリティ(オーナーはkusanagi(グループはwww))、パーミッション0440だったのですが
パーミッションを0660に変更しました。色々試してみると、そのあたりが色々影響してそうな感じがしますが、
よくわからないのでこれ以上は深入りせずにおこうと思います。ご助言いただき大変ありがとうございました。
- This reply was modified 1 year, 11 months ago by kuroda.
-
-
-
AuthorPosts
- You must be logged in to reply to this topic.