Genel
PHP Hataları Nasıl Bulunur?
3 yıl önce yazıldı. | Okuma süresi: 3 dk.

Özellikle php ile uğraşmaya yeni başlayanlar için kurtarıcı niteliğinde bir sistem göstereceğim. Bu betikler ile aslında error 500 internal server error gibi belalarda asıl sorunun ne olduğunu öğrenebileceksiniz.

PHP'nin kendi içinde tanımlı olan error modülü default olarak kapalı geliyor. Ya bunu php.ini de açacaksınız. Ya da istediğiniz sayfa için manuel aktif hale getireceksiniz.

Sayfadaki tüm hataları görmek için şunları girmeniz gerekiyor.

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

en üst kısımda php tagları arasında bunları koyduktan sonra bunlardan sonra gelen her türlü erroru görebilirsiniz. Unutmayın include ettiğiniz bir sayfa varsa onun da üstünde koymalısınız.

PHP ini içinde ise display_errors = on bunu on yaparak aktif hale getirilebilir. (Ama tavsiye etmiyorum.)

Fakat bunlara erişim yoksa, shared (paylaşımlı) bir host kullanılıyorsa, htaccess içinde de flag ile gösterbilirsiniz. Onlar da şu şekilde:

php_flag display_startup_errors on
php_flag display_errors on

hatta acccess de şunu da ekleyip logları kayıt edebilirsiniz.

php_value error_log logs/all_errors.log (error_log logs böyle bir folder olduğunu farzediyorum, ayrıca all_errors.log dosyası da yazılabilir olmalı chmod 775, 777 gibi.)


Detaylara geçelim mesela php taglarının içinde en üstte şunu girerseniz.

error_reporting(E_WARNING);

Sadece warningleri (uyarıları) görürsünüz.

error_reporting(E_ALL & ~E_NOTICE);

bu şekilde çoklu kullanabilirsiniz. (ama unutmayın ~ not anlamına geliyor.)

opsiyonel hata yazdırabilirsiniz

error_log("There is something wrong!", 0);

mail attırabilirsiniz

error_log("Email this error to someone!", 1, "[email protected]");

loglara yazdırabilirsiniz

error_log("Write this error down to a file!", 3, "logs/my-errors.log");

apache üzerinde de bu işlem yapılabilir. conf. dosyasına şu eklenmelidir.
ErrorLog "/var/log/apache2/my-website-error.log"

nginx için ise yine benzer
error_log /var/log/nginx/my-website-error.log;
eklenmelidir.

Sevgiler saygılar.


Page generated in 0.0232 seconds.
3.237.91.98