Bir PHP sorununa dair her rehber "display_errors'ı açın" diye başlar. Canlı bir sitede bu, dosya yollarınızı, çerçevenizi, kimi zaman veritabanınızın adını, sayfayı hata verdirebilen herkese yazdırır - buna, tam da bunu denemekte olan kişi de dahildir.
Canlı için doğru ayarlar
display_errors = Off
display_startup_errors = Off
log_errors = On
error_log = /var/log/php/mysite-error.log
error_reporting = E_ALL & ~E_DEPRECATED
Kullanımdan kaldırma uyarıları olmadan E_ALL, eski bir kod tabanında kaydı okunur tutar ve gerçekten yanlış olan her şeyi kaydetmeyi de sürdürür.
Yeniden üretirken izleyin
tail -f /var/log/php/mysite-error.log
Onu çalışır bırakın ve bozuk sayfayı yükleyin. display_errors'ın göstereceği bilginin aynısını, aynı anda alırsınız; hiçbir ziyaretçi de görmez.
Ille de tarayıcıda görmeniz gerekiyorsa
Yalnızca kendinize gösterin, adrese göre:
if ((@$_SERVER["REMOTE_ADDR"] ?? "") === "YOUR.IP.HERE") {
ini_set("display_errors", "1");
error_reporting(E_ALL);
}
Bunu, kaldırmayı unutamayacağınız bir denetimin ardına koyun - dağıtılmayan bir yapılandırma dosyasındaki bir sabit; yorum satırına alınmış bir satır değil. Yoruma alınmış bir satır er geç yorumdan çıkarılır.
Fazla hızlı büyüyen bir kayıt
sort /var/log/php/mysite-error.log | uniq -c | sort -rn | head -5
Her istekte bir uyarı, bir günde gigabaytlar yazar. O çıktının en üst satırı neredeyse her zaman sorunun tamamıdır.
Bir PHP yükseltmesinden önce kullanımdan kaldırma uyarılarını bir günlüğüne geri açın. Onlar, bir sonraki sürümde hataya dönüşecek uyarılardır ve erkenden okumak yapılabilecek en ucuz hazırlıktır.