PHP hiç hataları dönmüyor

5 Cevap php

Ben PHP ve nginx çalışan benim ve php.ini üretim sürümünü kullanın. Yani değişken display_error Kapalı olarak ayarlanmış ve ben bunu bu şekilde istiyorum iyi bir nedeni yoktur. Ama bazı dosyalar için ben hata raporlama etkinleştirmeniz gerekir. Ben hata raporlama açmak için ini_set kullanılır. Ancak basit bir kod gibi pasajı:

<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

echo "hi"errorrrrr
?>

hata iz değildir. Bu sadece bir HTTP 500 Internal Server Error mesajı döndürür. Ne hata raporlamayı etkinleştirmek için ne yapmalıyım?

5 Cevap

Ben aradığım cevabı bu cevabın yorumlar şöyledir: PHP does not return errors at all

The reason it doesn't work in the first place is that, since there are syntax errors in your file, PHP does not parse it at all. Thus, it doesn't execute the log_errors calls and has to rely on the settings in php.ini.

- 18:16 cmptrgeekken 16 Mart '10

Sen log_errors dosya için hataları her oturum için kullanmak gerekir. Bu hayat sizin için daha kolay hale getirecek varsa bile, error_log, belirli bir dosya hataları yazmak için kullanabilirsiniz.

Sözdizimi hatası oluştu eğer Of course PHP bu direktifleri yürütmek olmaz. Bu komut dosyası bile yürütmek başlamadı çünkü! Bu ayrıştırma aşamasında başarısız olarak.

Bu zor olabilir rağmen, bu yönergeleri belirlemek için başka bir yol kullanmak zorunda. Eğer ini yönergeleri belirlemek için tek yolu kendini php.ini düzenlemek için, CGI, değil apache modülü olarak çalışan PHP var, bu yüzden gibi görünüyor.

Emin olmak için, phpinfo(); çalıştırın ve Sunucu API ne diyor bakın.

Her neyse, kesinlikle ne olduğunu öğrenmek için, Apache hatalar.log 500 hatası görmek her zaman kontrol etmelisiniz.

Bir .htaccess dosyasındaki ini ayarlarını ayarlamayı deneyin.

Eğer ilk etapta nedeniyle sözdizimi hatası derlenmiş almaz bir PHP dosyası onları koyarsanız ayarları ele almayacağız.

Sadece php yapılandırmasını değiştiremezsiniz eğer, yapabileceğiniz bir hile var. Içinde hata dosyası içeren yeni bir dosya olun. Dahil yapmadan önce, istenen yapılandırmayı ayarlayın.

Örnek

error_reporting(E_ALL);
ini_set("display_errors", 1);
include 'some other file with a parse error.php';

Sonra sadece yerine sarıcı komut dosyasını yürütün. Script nihayet ayrıştırma hatası ölmeden dahil önceki ifadeleri, ilk değerlendirilecektir Bu çalışıyor çünkü.