500 med FastCGI

Tags:    php

Jeg kører en webserver på en Ubuntu 10.04 maskine med webserveren Hiawatha. Jeg bruger PHP 5.3 med FastCGI. Jeg har slået error_log til men i disse tilfælde jeg har problemer med skrives der ikke noget til filen.

Problemet er at ved nogle PHP fejl får jeg en fejl 500 Internal Server Error. Ved andre PHP fejl får jeg en normal fejlbesked hvis jeg har slået det til.

Det virker "fint":
Fold kodeboks ind/udKode 


Denne her giver en 500:
Fold kodeboks ind/udKode 

Der glemt =.

Hvordan kan jeg få den til at lade være med at give mig fejl 500?



Indlæg senest redigeret d. 21.11.2010 19:31 af Bruger #14645
Du kunne jo bruge: http://www.php.net/manual/en/language.operators.errorcontrol.php

Men hvad er formålet med det ?!



Indlæg senest redigeret d. 21.11.2010 19:44 af Bruger #7728
Du kunne jo bruge: http://www.php.net/manual/en/language.operators.errorcontrol.php

Men hvad er formålet med det ?!

Det kræver jo at jeg ved at jeg vil lave en fejl/jeg ved hvorfor en statement den er galt med?

I stedet for at ved visse PHP fejl at jeg får en fejl 500 vil jeg gerne have en fejlbesked:
Undefined variable .......
Could not connect to mysql database....

Sådan noget. Det gør den så også ved nogle fejl, nemlig dem den ikke laver en 500 ved.



Indlæg senest redigeret d. 21.11.2010 20:05 af Bruger #14645
Fandt et eksempel:
Fold kodeboks ind/udKode 

foo eksisterer ikke.

Her vil jeg gerne have den ikke kommer med en 500, men istedet en fejlbesked.



Indlæg senest redigeret d. 21.11.2010 20:09 af Bruger #14645
Er der så ikke en som hedder display_errors i php.ini som er sat til 1 sæt den til 0...

og tag et kig på: http://php.net/manual/en/function.error-reporting.php



Indlæg senest redigeret d. 21.11.2010 21:44 af Bruger #7728
Er der så ikke en som hedder display_errors i php.ini som er sat til 1 sæt den til 0...

og tag et kig på: http://php.net/manual/en/function.error-reporting.php

Har prøvet med begge værdier. Men som sagt nogle php fejl vil den godt udskrive errors på, andre som den simple:
Fold kodeboks ind/udKode 

Får jeg en 500 på.



Ja det virker meget sært....

hvis følgende er sat til:
error_reporting = E_ALL
display_errors = 1


Og jeg går udfra du har prøvet at genstarte webserveren...



Ja det virker meget sært....

hvis følgende er sat til:
error_reporting = E_ALL
display_errors = 1


Og jeg går udfra du har prøvet at genstarte webserveren...

Havde vist slået display_errors = Off efter jeg havde fået installeret mit CMS system. Med display_errors = On får jeg ikke 500 længere.

Det jeg gerne vil have den til er at logge fejl til en fil derfor har jeg slået log_errors til og sat min error_log til en fil (som eksisterer og er skrivbar).

Sjovt nok ser intet ud til at fungere særlig godt for har sat:
Fold kodeboks ind/udKode 

alligevel kommer den ikke frem med fejlen på skærmen når display_errors = On, så skal jeg bruge
Fold kodeboks ind/udKode 

og foo("Hello"); er så vidt jeg ved ikke deprecated.

Dvs. jeg vil logge til en fil kun. Så skal jeg altså ikke have display_error slået til. Hvis jeg slår den fra så får jeg 500 på fejl. Yderlige er det lidt underligt at selv med display_errors slået til vil den ikke skrive selve fejlen.

Ja jeg er sikker på jeg kigger i den rigtige php.ini.

EDIT:
Ja genstarter web serveren og PHP-FCGI daemons'ne hver gang jeg ændrer noget.



Indlæg senest redigeret d. 21.11.2010 22:33 af Bruger #14645
Ja for hvis error_reporting ikke er sat kan den ikke logge i din fil...
Så jeg vil mene at display_errors skal være 0

Det lyder meget mystisk.. :S



t