views:

370

answers:

3

We are migrating to a new server running Windows 2003 and IIS 6. When my PHP code runs, it has a warning on a particular line (which I'm expecting at the moment but will fix shortly). However, when it hits the warning, it immediately halts processing and returns a 500 error in the HTTP header. Normally, I would expect PHP to output the warning, but continue processing the script.

Is there something in the configuration for IIS, FastCGI, or PHP that would be returning 500 errors when PHP hits a warning?

To clarify: I don't want to suppress the warnings; I want them to display. I do not want the script to stop processing on warnings.

A: 

I don't know about IIS or FastCGI, but afaik php has no such option. You can however set error_reporting (in your php.ini) to

E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR

to make warnings go away.

phihag
A: 

That depends very much on your PHP code as well, if you are doing something complicated within the code and an error occurs, web servers sometimes throw 500 errors. I would suggest you:

  1. Put an @ on the line to suppress the error, i.e :

    $x=@my_function($y);

  2. See your web server logs for the exact error message you get, then post it here and perhaps we could offer you a better solution.

Click Upvote
+4  A: 

Figured out the issue. log_errors in php.ini was set to On, but error_log was unset. This was causing PHP to stop everything. After setting display_errors to on, the warnings now display so I can see where things are breaking in the output.

This thread was helpful: http://forums.iis.net/p/1146102/1856222.aspx#1856222

jlleblanc