2013-07-27 62 views
0

我想添加一個symfony的命令作爲cron作業,但我的主機服務器(2freehosting.com)不允許我添加下面的命令:運行symfony中從一個php文件2命令

php app/console cache:clear --env=prod --no-debug 

只有php path/to/file型命令是允許的。

所以我想創建一個文件clearCache.php運行上面的命令,並將其添加爲cron作業

php path/to/clearCache.php 

我怎樣才能調用clearCache.php這個symfony的命令?

我的目錄結構:

-app 
-bin 
-vendor 
-src 
-public_html 
    -bundles 
    -app.php 
    ..... 
-clearCache.php 

回答

1

您可以使用bash腳本像clearCache.sh

#!/bin/bash 

/path/to/php /path/to/app/console cache:clear --env=prod --no-debug 
0

假設你使用Linux,你可以創建一個別名:

alias symfony-cc="php path/to/app/console cache:clear --env=prod --no-debug" 
0

記住清除緩存意味着移除app/cache中的文件夾和文件。所以,你可以使用這一招

創建Web文件夾clear.php文件,並把

<?php // get all file names 
$str = __DIR__.'/../app/cache/'; 

function recursiveDelete($str){ 
if(is_file($str)){ 
    return @unlink($str); 
} 
elseif(is_dir($str)){ 
    $scan = glob(rtrim($str,'/').'/*'); 
    foreach($scan as $index=>$path){ 
     recursiveDelete($path); 
    } 
    return @rmdir($str); 
} 
} 

recursiveDelete($str); 

//here you can redirect to any page 
echo(__DIR__.'/../app/cache/*'.' -> Clear completed'); 

然後由本地主機/ clear.php或yoursite.com/clear.php訪問