Üretim sunucularında php hatalarını bastırmak için en iyi yol

5 Cevap php

Tarayıcıda görüntülenen php hatalarını gizleme en iyi yöntemi nedir?

Aşağıdaki kullanmak olacaktır:

`ini_set("display_errors", 1);`

Herhangi bir iyi uygulama ipuçları yanı sıra mutluluk duyacağız!

Ben hataları günlüğe ediyorum, ben sadece emin kapalı (veya 0) giriş olmaktan hataları önlemek olmaz için display_errors değerini ayarlama yapmak istiyorum.

5 Cevap

En iyi yolu yerine onları görüntüleyen veya görmezden sizin hataları oturum tabii ki.

Bu örnek yerine, tarayıcıda bunları gösteremeyecek syslog'a hataları oturum olacaktır.

ini_set("display_errors", 0);
ini_set("log_errors", 1);

//Define where do you want the log to go, syslog or a file of your liking with
ini_set("error_log", "syslog");

Eğer php.ini dosyasının kontrolünde olduğu varsayıldığında, bunun yerine ini_set kod, bir gün bir dosyaların koymak için unutmak olabilir (tüm php dosyalarında etrafında döşeme olan bu dosyanın içinde küresel bu değişiklikleri yapabilirsiniz ) üretim kötü olabilir.

PHP dağıtımı dosyalar maalesef hata iletileri işleme hakkında karışık bir mesaj gönderir. Varsayılan php.ini dosyası geliştirme sunucuları için daha iyi üretim sunucuları ve diğerleri için bazı ayarlar uygundur vardır. Sen dev tüm hataları açın (error_reporting = E_ALL ve display_errors = On), ve eşya kapalı (display_errors = off fakat noktası log_errors yere) gerekmektedir. Ancak, kesin hiçbir hata (ya da ele konum) olmadığından emin olmak için elinizden geleni yapın.

. Ayrıca kodu dokunmadan hataları oturum açmak için apache htaccess kullanabilirsiniz:

<IfModule mod_php5.c>
  php_flag      display_errors  Off
  php_flag      log_errors      On
  php_value     error_log       logs/errors
</IfModule>

En iyi yolu? Hataları düzeltmek!

Eğer hızlı bir geçici bir çözüm gerekiyorsa o ayar ciddi / aksi sessiz Ayrıştırma hataları yapacaktır, çünkü o, display_errors kapatmak, ancak onları bir yere giriş emin olmak için Tamam.