We have recently spent over a month upgrading our internal CMS to PHP 5. We tested the changes we had to make for PHP 5 compatibility thoroughly on a development machine. Then we put the PHP 5 version of the CMS onto our remote production web server, and tested it again. No problems.
This week we went live.
Almost immediately, customers began complaining that their site was either coming up blank or showing a HTTP 500 Internal Server Error.
However, from our offices we just couldn't get any of the sites to crash.
Eventually, we managed to replicate the error by using RDC to browse from a remote machine.
Here's what we've noticed:
1. Maybe 19 out of 20 times you get the HTTP 500 Internal Server Error when entering the address of the CMS.
2. Once you get the CMS to load, if you navigate between the pages, they load fine every time.
3. From our company office, the CMS loads every time, regardless of whether you're entering the URL or following a link.
4. It makes no difference which browser is used.
We are running PHP 5.2.6 on IIS 6 and Windows 2003 Server. The database backend is MSSQL Server. We use ISAPI Rewrite for pretty URLs.
Here are the headers returned by the server:
HTTP/1.x 500 Internal Server Error
Connection: close
Date: Thu, 21 Aug 2008 15:30:05 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET, PHP/5.2.6
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Type: text/html
What on earth is going on? There is nothing in the Windows event logs. I turned on PHP error logging but the file remains empty.
Is this an IIS problem? How can I get more information on what's causing the errors? Anyone seen anything like this before?
Can anyone shed any light at all on this problem?
Thanks in advance
Fergus