Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 17-11-2010 18:17:30

dev-k
Membre
Lieu: Barcelona
Date d'inscription: 18-07-2009
Messages: 77
Site web

[Zend_Cache][ZF 1.10.3] Problème création structure répertoire cache

Bonjour,

Je suis en train de mettre en place un cache de page. Je fais ça de la façon suivante (comme avec zf 1.5, on commence àactualiser petit à petit vers 1.10)

config.ini

Code:

    page_cache.frontend.lifetime                                       = 86400
    page_cache.frontend.default_options.cache                          = true
    page_cache.frontend.default_options.cache_with_post_variables      = false
    page_cache.frontend.default_options.cache_with_session_variables   = false
    page_cache.frontend.default_options.cache_with_files_variables     = false
    page_cache.frontend.default_options.cache_with_cookie_variables    = true
    page_cache.frontend.default_options.cache_with_get_variables       = true
    page_cache.frontend.default_options.make_id_with_get_variables     = false
    page_cache.frontend.default_options.make_id_with_post_variables    = true
    page_cache.frontend.default_options.make_id_with_session_variables = true
    page_cache.frontend.default_options.make_id_with_files_variables   = true
    page_cache.frontend.default_options.make_id_with_cookie_variables  = false
    page_cache.frontend.debug_header                                   = false
    page_cache.backend.cache_dir                                       = APPLICATION_PATH "/../tmp/cache_page"
    page_cache.backend.hashed_directory_level                          = 2
    page_cache.backend.file_name_prefix                                = "bkm_cache"

Dans le bootstrap

Code:

private function setupPageCache()
{
        /*
         * Frontend Options
         */
        $frontendOptions = self::$config->page_cache->frontend->toArray();

        /*
         * Backend Options
         */
        $backendOptions = self::$config->page_cache->backend->toArray();

        $cachePAGE = Zend_Cache::factory('Page', 'File', $frontendOptions, $backendOptions);        
        
    Zend_Registry::set('cache_page', $cachePAGE);
    $cachePAGE->start();

    return self::$cachePAGE;
}

En local (sur une machine ubuntu 10.10, apache2, php5.3), comme j'ai hashed_directory_level=2, ça me créé bien l'arborescence suivante:
/tmp/cache_page/bkm_cache--4/bkm-cache--4d/
avec les fichiers
bkm_cache---9a00f23de5ab320aca0c09a2be00df3a42d70402cd3942eb5f6a5ae753bdaa92
bkm_cache---internal-metadatas---9a00f23de5ab320aca0c09a2be00df3a42d70402cd3942eb5f6a5ae753bdaa92
pour une page donnée

Jusque là aucun problème en local.

Avant de mettre les fichiers en production, j'ai monté un serveur de test pour le moment en local, avec la même configuration que le serveur de production (Centos 5.5, php 5.2.14....)

Et quand j'ai testé la mise en cache sur le serveur de test j'ai remarqué que les répertoires cités plus haut, ainsi que les fichiers de cache ne se crééent pas, à part premier bkm_cache--4.
Le répertoire tmp/ a une permission 777.

J'ai trouvé la ligne de code où ça pose problème. Il s'agit de la classe Zend_Cache_Backend_Page et la méthode _recursiveMkdirAndChmod.

Apparemment la commande @mkdir($part, $this->_options['hashed_directory_umask']); ne me créé pas le 2ème répertoire. Ça marche d'ailleurs pas non plus lorsque hashed_directory_level = 1 et hashed_directory_umask= "0777".

Par contre ça marche bien avec hashed_directory_level = 0

Je souhaiterais garder hashed_directory_level = 2 pour des raisons de performance et autre.

J'ai essayé de trouver des éléments de réponse sur internet en vain.
Quelqu'un a t-il déjà rencontré le problème??

Merci,
David

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages