diff --git a/index-wp-redis.php b/index-wp-redis.php index 290d7cb06147ed8c97d5ccccc28a20e3208757ee..adda90ef03662048513f05280600ce875e538b36 100644 --- a/index-wp-redis.php +++ b/index-wp-redis.php @@ -1,32 +1,51 @@ <?php +// Start the timer so we can track the page load time +$start = microtime(); + +function getMicroTime($t) +{ + list($usec, $sec) = explode(" ", $t); + return ((float) $usec + (float) $sec); +} + $seconds_cache_redis = 60 * 60 * 12; // 12 hours by default, you can change in this in wp-admin options page -$ip_of_your_website = '64.90.38.145'; //You must set this to the IP of your website +$ip_of_your_website = '127.0.0.1'; //You must set this to the IP of your website $secret_string = "changeme"; /*This is if you want to manually refresh the cache ex: http://example.com/sample-post?refresh=changeme */ - // so we don't confuse the cloudflare server if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) { $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP']; } define('WP_USE_THEMES', true); - -// Start the timer so we can track the page load time -$start = microtime(); - -include("wp-content/plugins/wp-redis-cache/predis5.2.php"); //we need this to use Redis inside of PHP -$redis = new Predis_Client(); - $current_url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $current_url = str_replace("?refresh=$secret_string", '', $current_url); //clean up the URL $current_url = str_replace("&refresh=$secret_string", '', $current_url); -$redis_key = md5($current_url); +$redis_key = md5($current_url); + +try { + // check if PECL Extension is available + if (class_exists('Redis')) { + $redis = new Redis(); + + // Sockets can be used as well '/tmp/redis.sock' + // documentation can be found at https://github.com/nicolasff/phpredis/#connection + $redis->connect('127.0.0.1'); + + } else // Fallback to predis5.2.php + { + include("wp-content/plugins/wp-redis-cache/predis5.2.php"); //we need this to use Redis inside of PHP + $redis = new Predis_Client(); + } +} catch (Exception $e) { + $redisError=true; +} //Either manual refresh cache by adding ?refresh=secret_string after the URL or somebody posting a comment -if (isset($_GET['refresh']) || $_GET['refresh'] == $secret_string || ($_SERVER['HTTP_REFERER'] == $current_url && $_SERVER['REQUEST_URI'] != '/' && $_SERVER['REMOTE_ADDR'] != $ip_of_your_website)) { +if (!isset($redisError) && (isset($_GET['refresh']) || $_GET['refresh'] == $secret_string || ($_SERVER['HTTP_REFERER'] == $current_url && $_SERVER['REQUEST_URI'] != '/' && $_SERVER['REMOTE_ADDR'] != $ip_of_your_website))) { $redis->del($redis_key); require('./wp-blog-header.php'); @@ -66,10 +85,7 @@ if (isset($_GET['refresh']) || $_GET['refresh'] == $secret_string || ($_SERVER[' require('./wp-blog-header.php'); } - - - -} else if ($_SERVER['REMOTE_ADDR'] != $ip_of_your_website && strstr($current_url, 'preview=true') == true) { +} else if (($_SERVER['REMOTE_ADDR'] != $ip_of_your_website && strstr($current_url, 'preview=true') == true) || isset($redisError)) { require('./wp-blog-header.php'); } // else { // This is what your server should get if no cache exists //depricated, as the ob_start() is cleaner @@ -84,14 +100,3 @@ if ($_SERVER['REMOTE_ADDR'] != $ip_of_your_website) { $time = (@getMicroTime($end) - @getMicroTime($start)); echo "<!-- Cache system by Benjamin Adams. Page generated in " . round($time, 5) . " seconds. -->"; } - - -function getMicroTime($t) -{ - list($usec, $sec) = explode(" ", $t); - return ((float) $usec + (float) $sec); -} - - - -?>