Ö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.

Önerilen Yazı : Altın Madenlerinde Devlet Payı
Bu yazıyı sadece yazmış olmak için değil ciddi bir problemi göstermek için yazıyorum. Onun için detaylara çok takılmayın.

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.


Erkan Kavas Yazar : Erkan Kavas

Uzun süredir üniversite sıralarında hayatını geçirirken bir gün aydınlanıp normal insanlar arasına dalmıştır. O gündür bugündür gerçekten nefes almanın ne demek olduğunu biliyor. Hiç durmadan nefes almaya devam ediyordur. Asıl mesleği web, mobil yazılımcılığı olsa da, favorisi ios geliştirme ve seocu taklidi yapmaktır.



101 kez gösterildi.

Yorumlar