2016-10-14 17 views
0

私はapcをクリアするPHPスクリプトを持っています。 ブラウザを使用してスクリプトを開いたときにスクリプトが正常に動作していますが、コマンドラインからそのファイルを実行しているときにキャッシュがクリアされていません。apc_clear_cacheがPHPのコマンドラインから機能しない

私はapc.enable_cli設定を確認しましたが、それもオンです(スクリーンショットを確認してください)。 Settings dump

そして、ここでは、私が何をしないか、または間違ってやっている私のPHPコード

<?php 

if (isset($argv[1])) { 
    $key = $argv[1]; 

    $info = apc_cache_info("user"); 
    foreach ($info['cache_list'] as $obj) { 
     if (strstr($obj['info'], $key)) { 
      apc_delete($obj['info']); 
     } 
    } 

} else { 
    apc_clear_cache("user"); 
} 
?> 

のですか?

+2

私はまた、キャッシュをクリアするコードを投稿する必要があると思う –

+0

@JakubJankowski:コードを追加しました。 – kadamb

+0

私はPHPにはあまり慣れていませんが、おそらく許可とは何か関係がありますか?コマンドラインからファイルを実行するとエラーが表示されますか? –

答えて

1

ウェブサーバーの同じAPCセグメントに当たっていないので、コマンドラインからAPCキャッシュをクリアすることはできません。

enable_cliでは、CLI環境でのみAPCを使用できますが、スクリプトのセグメントが作成され、スクリプトの最後に破棄されることに注意してください。それはあなたのウェブサーバについて知らないので、同じセグメントを使用しません。次の2つのオプションがあり

:あなたはAPCにアクセスする必要がある場合

  • (下記参照)のFastCGIを通して、あなたのスクリプトを呼び出すには、http://

を使用して、file_get_contents()等でWebページを呼び出しますデータ、あなたも私の記事を読むことができます:https://www.dugwood.com/949904-php5-opcode-caching-and-memory-storage-with-apc-xcache-in-command-line-interface-cli-or-cron.html

+1

私はこれを使いました: curl -s 127.0.0.1/clear_cache.php>/dev/null& phpファイルにコードを書きました – kadamb

関連する問題