1

これはとても簡単ですが、方法がわかりません。Zend_Cache を使用してキャッシュを保存するスクリプトをコマンド ラインで実行しています。

$frontendOptions = array(
            'lifetime' => NULL,
            'automatic_serialization' => true
        );

$backendOptions = array(
            'cache_dir' => "/home/tmp/cache"
        );

$cache = Zend_Cache::factory('Core',
                    'File',
                    $frontendOptions,
                    $backendOptions);
$vars = Array("id1" => "12121", "id2" => "2232");
$cache->save($vars, "p_11");

コマンドラインから保存されたキャッシュにアクセスできます:

$cache->load("p_11");

上記の両方のケースで、php-cli を使用してコマンドラインで実行される app.php ファイルがあります。

ここで、 http://mytestserve.lan/test_cache.phpのようなブラウザを使用して p_11 キャッシュにアクセスしたいと思います

上記のようにキャッシュファクトリでオブジェクトを作成しました。すべてのパラメータは上記と同じです。ただし、キャッシュ p_11 をロードしようとすると、コマンド ラインから変数が設定されません。何が悪かったのか?

4

2 に答える 2

3

コマンドラインから初めてキャッシュファイルにアクセスしたときに、所有者および特定のアクセスマスク(おそらく0600)として作成された可能性があります。

ただし、ブラウザを介してファイルを開こうとすると、まったく別のユーザー(wwwやapacheなど)として機能します。たぶん、apacheユーザーはそのファイルにアクセスできません。

于 2012-09-17T11:03:25.897 に答える
3

@akondに同意します。おそらく、バックエンド構成のオプションをcache_file_umask試してみてください。cache_file_perm

$backendOptions = array(
    'cache_dir'        => "/home/tmp/cache",
    'cache_file_umask' => 0775, 
    'cache_file_perm'  => 0775);
于 2012-09-18T02:48:18.687 に答える