If you visited this blog in the last 2 days, there is a good chance you got Internal server errors and Server 500 Errors on every page of this blog. The main domain name was active, so was my wordpress admin screens, but there was no connectivity between them causing those server errors.
Web Host Responses
I managed to get 2 responses from my web hosting Dreamhost at 24 hourly response intervals. The first response was something like “I restarted the mysql service as your site was not able to connect to the database”. But nothing happened and a second response 24 hours later pointed me to install a wordpress plugin to fix the server 500 issue (the same that fixed server 500 errors with WordPress 2.0.5 upgrades). I upgraded to WordPress 2.0.5 over a month back and if I did not require that plugin then, then why now. Still I installed the plugin, but nothing happened as I expected.
Fixing internal server errors
So I decided that I myself had to figure out a way to fix it or face more site downtime. I claim to be no expert at this, but this is just the way I approached the issue and you can see the blog online now.
Firstly I fixed up the main index page. For the first time I was truly glad I hosted WordPress in an alternative directory. I could easily add any index.html file via FTP and override the default page index.php that wordpress had configured to show on the main domain name. So I was able to restore the index page and post a notice about the errors, point readers to subscription options and my other related services.
Fixing WordPress
It became clear that it was a WordPress issue since the rest of the site was functioning well. Since I was using the lastest WordPress version, and had not changed any default wordpress configurations or modified wordpress admin files recently, the core wordpress installation was not at fault.
So I narrowed down to any plugins I had installed recently which might be causing the error. I had installed the WP-PageNavi plugin that adds a more advanced page navigation to WordPress a few hours back, but it was working fine thereafter. I tried disabling it, but still no response.
Then I disabled all the wordpress plugins one by one and activated them again one by one to see if this would work. And guess what I identified the buggy plugin – WP-Cache.
I had installed WP-Cache recently to prevent server crashes due to recent site traffic surges. It is an amazing plugin with a very fast cache module, that delivers the web pages from the cache rather than reloading the full page and helps to reduce the server load.
I disabled WP-cache from the WP-cache manager. It showed 314 cached and 314 expired pages. I tried to delete the expired and cached pages but it would not let me. Finally after a few times, I clicked the “restore default configuration” button (though I had never changed the options before) and was able to clear the cache after that. The blog went live instantly and all internal server errors disappeared. I have the latest version of WP-cache, but the instant I activate it, the errors are back. So till I figure it out, I need to disable caching.
Getting Back Online
I quickly renamed the index.html or some other name and the preexistent index.php became the default page again on the domain name. All plugins excluding WP-Cache are well and working.
Lessons learnt
If you analyse the problem well enough, you can find the solution yourself. You need not be an expert on the topic. Depend on professional support, but they take time, are tired by complaints throughout the day, have hundreds of open tickets to close and it may not be their area of expertise. You maybe smarter and have access to password protected options and settings that they don’t have (like plugin controls). I don’t say this will work every time, but had I not stepped in, you might not be reading this post for a few more days…