WP Super Cache Saved The Day

Tuesday 24 February 2009 om 18:34 | In Bijeenkomsten, xCAT.nl Techniek | 1 Comment

Vandaag werd ISPam.nl geconfronteerd door de nodige downtime. Het probleem zat hem in de database server die om een bepaalde reden totaal 4 uur heeft platgelegen. Als een geluk bij een ongeluk, maak ik bij ISPam.nl gebruik van de WP Super Cache plugin, die heel ISPam.nl cached voor bezoekers die niet zijn ingelogd. Helaas was de caching na enige tijd ook uitgewerkt, waardoor bezoekers toch een pagina voor hun neus kregen met “Could not connect to the database”. Erg vervelend.

Daarom ben ik direct aan de slag gegaan om te proberen om het .htaccess bestand van ISPam.nl te bewerken om elke request om te leiden naar de cache, zolang als de database server niet beschikbaar was. Toen dat niet lukte heb ik de index.php waar de .htaccess standaard al naar verwees vervangen. Op die manier kregen ISPam.nl bezoekers een statische versie van ISPam.nl en vrijwel alle pagina’s (die eerder waren gecached) voor hun neus. Daarmee werd de downtime praktisch gezien iets minder kort voor ISPam.nl.

Ik ga nu kijken of het mogelijk is, om in het geval van database downtime standaard statische (gecachede) pagina’s te serveren, die zolang als de database problemen voortduren niet worden ververst. Door het bestand dat ik vandaag gebruikt heb op te slaan als /wp-content/db-error.php pakt wordpress dit automatisch op bij database problemen.

Onderstaand PHP script zorgde er voor dat bezoekers van ISPam.nl een statische versie van elke pagina voorgeschoteld kregen. Indien er geen statische versie beschikbaar was kregen bezoekers een 500 Internal Server Error foutmelding terug.

<?php
$uri = $_SERVER['REQUEST_URI'];
$file = “./wp-content/cache/supercache/www.ispam.nl/”.$uri.’/index.html’;
if (file_exists($file)) {
readfile($file);
print “\n”.”<!– Special Downtime Cache –>”;

} else {
header(“HTTP/1.0 500 Internal server error”);
}

?>


1 Comment »

RSS feed for comments on this post. TrackBack URI

  1. Really good work about this website was done. Keep trying more – thanks!

    Comment by Yahoouj — February 23, 2010 #

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds. Valid XHTML and CSS. ^Top^