WordPress ortamları için genellikle kullanmak ini_set
için bir neden yoktur, çünkü WordPress Core tarafından sağlanan tanımlanmış sabitler zaten bunu başarır. PHP'nin çalışma şekli, belirli ayarların CMS'niz (WordPress) içinde, tek tek komut dosyalarında ve hatta kullanıcı başına veya dizin başına esasında (web barındırıcılarının ve ajanslarının hayal kırıklığı için) geçersiz kılınabilmesidir .
WordPress'de hataların sayfada görüntülenmesini devre dışı bırakmak için gerçekten ihtiyacınız olan tek ayar:
define('WP_DEBUG', false);
... çünkü WP_DEBUG
devre dışı bırakıldığında, alt seçenekler devre dışı olur:
define('WP_DEBUG_DISPLAY', false);
define('WP_DEBUG_LOG', false);
Kafa karıştırıcı WP_DEBUG_LOG
seçeneğin yalnızca debug.log
dizinde oluşturulmasını ifade ettiğini wp-content
ve diğer günlük ayarlarını vb. Etkilemediğini unutmayın.
Yine, WordPress'teki ayarlar varsayılan PHP ayarlarını geçersiz kılabilir, bu nedenle PHP ayarlarınız wp-config.php
dosyanızda diğer WP bileşenlerinden önce yüklenen doğru ayarlara sahip olmak kadar önemli değildir .
Bununla birlikte, üretimde aşağıdaki gibi varsayılan ayarları uygulamak iyi bir fikirdir:
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
Tam bir örnek için Nginx ve PHP-FPM için optimize edilmiş SlickStack php.ini dosyasına bakın .
Bir olayda, araştırmanın saat sonra, bir eklenti fark (veya tema) daha önceden belirlenen çeşitli hata işleme ayarları baskın oldu php.ini
ve wp-config.php
. Bunu önlemenin tek yolu, PHP ayarlarınızı "hacklemeye" çalışan WordPress eklentisini veya temasını kaldırmak veya kaldırmasını söylemektir, çünkü bu, uzantıların CMS'nizin hata ayıklama seçeneklerini geçersiz kılması için çok kötü bir uygulamadır.
SlickStack'ta, WP Yönetici Panosunda bu tür "hack'lerin" bir listesini görüntüleyen bir MU Plugin (PHP betiği) kullanarak bu tür örnekleri vurgulayarak ve dizinlerindeki PHP dosyalarından herhangi birini ini_set
ve error_reporting
satırları "işaretleyen" bir Bash betiği oluşturduk ./themes/
/plugins/