Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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
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
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
Pages: 1