WordPress環境では、ini_set
WordPress Coreが提供する定義済みの定数がすでに達成しているため、通常使用する理由はありません。PHPが機能する方法は、CMS(WordPress)内、個々のスクリプト内、さらにはユーザーごとまたはディレクトリごと(Webホストと代理店の多くのフラストレーション)でも、特定の設定をオーバーライドできることです。
WordPressでページ上にエラーが表示されないようにするには、本当に必要な設定は次のとおりです。
define('WP_DEBUG', false);
... WP_DEBUG
が無効になっているため、サブオプションは無効になります:
define('WP_DEBUG_DISPLAY', false);
define('WP_DEBUG_LOG', false);
混乱を招くWP_DEBUG_LOG
オプションdebug.log
はディレクトリ内の作成のみを指し、wp-content
他のロギング設定などには影響しないことに注意してください。
繰り返しになりますが、WordPressの設定はデフォルトのPHP設定を上書きする可能性があるため、PHP設定はwp-config.php
、他のWPコンポーネントの前にロードされるファイルに適切な設定があるほど重要ではありません。
ただし、本番環境では以下のようなデフォルト設定を実装することをお勧めします。
error_reporting = E_ERROR | E_WARNING | E_PARSE
display_errors = Off
display_startup_errors = Off
log_errors = On
error_log = /var/www/logs/error.log
log_errors_max_len = 1024
ignore_repeated_errors = On
ignore_repeated_source = Off
report_memleaks = On
xmlrpc_errors = 0
html_errors = Off
完全な例については、NginxおよびPHP-FPM用に最適化されたSlickStack php.iniファイルを参照してください。
あるケースでは、研究の時間後、私たちはプラグイン(またはテーマ)を実現し、以前に設定された様々なエラー処理設定をオーバーライドしたphp.ini
としますwp-config.php
。これを防ぐ唯一の方法は、PHP設定を「ハッキング」しようとしているWordPressプラグインまたはテーマを削除するか、拡張機能がCMSのデバッグオプションをオーバーライドすることは非常に悪いため、削除するように指示することです。
SlickStackでは、WP管理ダッシュボードにそのような「ハッキング」のリストを表示するMUプラグイン(PHPスクリプト)を使用してそのようなインスタンスを強調表示することにより、およびディレクトリ内のPHPファイルの行ini_set
とフラグを「フラグ付け」するBashスクリプトを作成しましたerror_reporting
/themes/
/plugins/