Portal Home > Knowledgebase > Varnish Plugin / Script > How can users purge varnish cache on their own?
Update: Starting from v1.8.0 end users are now able to purge their own domain's cache via cPanel. Read more on this Varnish feature here.
You can either use the No-Cache directive available in WHM or use the sample PHP script below.
Here's a sample PHP script (call it purge.php):
# get param $url = $_POST["url"]; $host = $_POST["host"]; $ip = "127.0.0.1"; $port = "80"; $timeout = 1; $verbose = 1; # inits $sock = fsockopen ($ip,$port,$errno, $errstr,$timeout); if (!$sock) { echo "connections failed $errno $errstr"; exit; } if ( !($url || $host) ) { echo "No params"; exit; } stream_set_timeout($sock,$timeout); $pcommand = "purge"; # Send command $pcommand .= ".hash $url#$host#"; put ($pcommand); put ("quit"); fclose ($sock); function readit() { global $sock,$verbose; if (!$verbose) { return; } while ($sockstr = fgets($sock,1024)) { $str .= "rcv: " . $sockstr . "
"; } if ($verbose) { echo "$str\n"; } } function put($str) { global $sock,$verbose; fwrite ($sock, $str . "\r\n"); if ($verbose) { echo "send: $str
\n"; } readit(); } ?>
And the HTML page that calls the above script (call it purge.html):
<html> <head> <title>Purge Varnish cache</title> </head> <style type="text/css"> body { font-size: 10px; } h1 { font-weight: bold; color: #000000; border-bottom: 1px solid #C6EC8C; margin-bottom: 2em; } label { font-size: 160%; float: left; text-align: right; margin-right: 0.5em; display: block } input[type="text"] { width: 500px; } .submit input { margin-left: 0em; margin-bottom: 1em; } </style> <body> <h1>Makes Varnish purge the supplied URL from its cache</h1> <form action="purge.php" method="post"> <p><label>URL</label> <input type="text" name="url"></p> <p><label>HOST</label> <input type="text" name="host"></p> <p class="submit"><input value="Submit" type="submit"></p> </form> </body> </html>
Your could, for example, expand on the above code to prompt for a domain name or URL before proceeding.
Add to Favourites
Print this Article
Powered by WHMCompleteSolution