CakePHP 2.0 - Gâteau était impossible d'écrire sur le Fichier de cache
Je suis en utilisant CakePHP 2.0 RC-1. Après vérification de la projet de SVN, l'application commence à se plaindre qu'il ne peut pas écrire des fichiers de cache pour le tmp/cache directory. Puisque c'est en local, je sais que le répertoire est accessible en écriture et je peux CLAIREMENT voir que les répertoires sont encore remplis avec les fichiers, donc l'erreur est un peu étrange.
Voici les erreurs que j'ai rencontré:
_cake_core_ cache was unable to write 'cake_dev_nb' to File cache
fopen(c:\cake\app\tmp\cache\models\cake_model_default_media) [function.fopen]: failed to open stream: No error [CORE\Cake\Cache\Engine\FileEngine.php, line 127]
Pas d'erreur?! Wth?
Maintenant, si je regarde dans le FileEngine fichier, à la ligne 127 il lit:
if (!$handle = fopen($this->_File->getPathName(), 'c')) {
return false;
}
En remplaçant le "c" avec "w", aucune erreur n'est rencontrée et tout fonctionne comme il se doit. Mais, il ne devrait pas être nécessaire de modifier la base de Gâteau bibliothèques pour contourner ce problème. Permettez-moi de répéter que sur mon autre ordinateur, cela fonctionne comme prévu, sans modifier le noyau de la bibliothèque. Les deux utilisent le système d'exploitation Windows et le droit en lecture/écriture à l'tmp/cache-dossier est exactement le même.
Edit: Voici un site qui fait l'expérience de l'erreur de sorties, je vais avoir localement
Exemple de site trouvé sur Google. Pas mon site: http://www.12h30.net/credit/
Des suggestions?
Mise à jour: Voici pourquoi: Cela est dû si vous avez un PHP-version qui est trop faible, avant de 5.2.6, comme indiqué par "api55" dans les commentaires. Merci pour la réponse. Espérons que cela vous aide aussi.
- quelle est la version de php que vous avez? rappelez-vous que le 2.0 encore en RC stade, donc il peut avoir ce genre d'erreurs... pour le mode c ou c+, vous DEVEZ avoir php 5.2.6 ou plus tard, si vous n'avez pas de ne pas reconnaître que le mode de
Vous devez vous connecter pour publier un commentaire.
Bien, dans mon cas, quand j'ai vérifié mon application, il n'avait pas le
/tmp
dossier. Puis j'ai créé la structure (/tmp/cache/models
,/tmp/cache/persistent
) et tout fonctionne bien. Ce qui m'est arrivé peut-être à git d'ignorer les dossiers vides, de sorte qu'ils n'ont pas été créés.J'ai eu un problème similaire, c'était parce que j'avais chown -R www pour le répertoire app/tmp pour obtenir Gâteau pour fonctionner "correctement" sans donner à chacun les droits d'écriture. Ressemble au cours du développement la seule manière d'utiliser la console et le web est de donner à chacun les droits d'écriture, ou ajoutez-vous au www groupes, peut-être.
Solution facile:
ou
lors de l'utilisation de la console et
lors de l'utilisation du web
Juste donner le droit
CHMOD
(776
fonctionne très bien pour moi) pourapp/tmp
pour les utilisateurs de windows avec le même message d'erreur/avertissement: assurez-vous que vous exécutez l'invite de commande en mode élevé 😉