©
本文档使用
php.cn手册 发布
The example illustrates a simple usage of the ban functionality
Example #1 Ban an URL
<?php
$args = array(
VARNISH_CONFIG_HOST => "::1" ,
VARNISH_CONFIG_PORT => 6082 ,
VARNISH_CONFIG_SECRET => "5174826b-8595-4958-aa7a-0609632ad7ca" ,
VARNISH_CONFIG_TIMEOUT => 300 ,
);
$va = new VarnishAdmin ( $args );
try {
if(! $va -> connect ()) {
throw new VarnishException ( "Connection failed\n" );
}
} catch ( VarnishException $e ) {
echo $e -> getMessage ();
exit( 3 );
}
try {
if(! $va -> auth ()) {
throw new VarnishException ( "Auth failed\n" );
}
} catch ( VarnishException $e ) {
echo $e -> getMessage ();
exit( 3 );
}
try {
$status = $va -> ban ( 'req.url ~ "^/$"' );
if ( VARNISH_STATUS_OK != $status ) {
throw new VarnishException ( "Ban method returned $status status\n" );
}
} catch ( VarnishException $e ) {
echo $e -> getMessage ();
exit( 3 );
}
exit( 0 );
?>
[#1] sarfraz dot qasim at gmail dot com [2012-09-03 08:57:45]
This code worked for me with couple of changes after installing PECL.
Here is the updated code.
<?php
$args = array(
VARNISH_CONFIG_HOST => "127.0.0.1",
VARNISH_CONFIG_PORT => 6082,
VARNISH_CONFIG_SECRET => "5174826b-8595-4958-aa7a-0609632ad7ca",
VARNISH_CONFIG_TIMEOUT => 300,
);
$va = new VarnishAdmin($args);
try {
if(!$va->connect()) {
throw new VarnishException("Connection failed\n");
}
} catch (VarnishException $e) {
echo $e->getMessage();
exit(3);
}
try {
if(!$va->auth()) {
throw new VarnishException("Auth failed\n");
}
} catch (VarnishException $e) {
echo $e->getMessage();
exit(3);
}
try {
$status = $va->ban('req.url ~ "^/."');
if (VARNISH_STATUS_OK != $status) {
throw new VarnishException("Ban method returned $status status\n");
}
} catch (VarnishException $e) {
echo $e->getMessage();
exit(3);
}
exit(0);
?>
Hope this helps.