Col&gram Posted May 30, 2014 Share Posted May 30, 2014 (edited) Bonjour, J'ai un problème de pages blanches sur mon back office ainsi que sur le front office. Sur le back office toutes les pages sont touchées, sur le front office, seules les pages prosuits sont impactées (enfin pour l'instant, lol). J'ai activer le mode debug pour voir l'erreur, il semblerait que ce soit un problème Smary. Voici l'erreur: (enfin une partie seulement car j'ai un doute sur la sécurité de l'afficher en entier) Fatal error: Uncaught exception 'SmartyException' with message 'unable to write file ... tools/smarty/sysplugins/smarty_internal_write_file.php on line 44 Je suis allée voir ce fameux fichier, à partir de la ligne 40 j'ai ceci: // write to tmp file, then move to overt file lock race condition $_tmp_file = $_dirpath . DS . uniqid('wrt', true); if (!file_put_contents($_tmp_file, $_contents)) { error_reporting($_error_reporting); throw new SmartyException("unable to write file {$_tmp_file}"); return false; } A noter qu'hier j'ai fait la mise à jour du module Paypal et que l'erreur n'apparait que sur mon site en prod, celui en local est ok. Quelqu'un peut m'aider à résoudre ce problème? Merci d'avance. Ps le site est là: http://www.lafilacroche.fr/index.php Edited May 31, 2014 by bcd (see edit history) Link to comment Share on other sites More sharing options...
ChDUP Posted May 30, 2014 Share Posted May 30, 2014 (edited) Avez-vous essayé de vider votre cache smarty ? Désactivez le module Paypal (en renommant le dossier modules/paypal par autre chose) pour voir si c'est lui qui cause ce problème. edit : apparemment Presta n'a pas les droits pour ecrire un fichier. qu'y a-t-il après unable to write file ..." ? Edited May 30, 2014 by ChDUP (see edit history) Link to comment Share on other sites More sharing options...
Col&gram Posted May 30, 2014 Author Share Posted May 30, 2014 Bonjour et merci pour votre aide. Y a-t-il un autre moyen de vider le cache smarty qu'en passant par le back office ? (Page blanche là aussi) Du coup pas moyen de désactiver Paypal non plus. Si je vire tous les fichiers Paypal par ftp? Bonne ou mauvaise idée ? Voilà mon fichier complet: <?php /** * Smarty write file plugin * * @package Smarty * @subpackage PluginsInternal * @author Monte Ohrt */ /** * Smarty Internal Write File Class * * @package Smarty * @subpackage PluginsInternal */ class Smarty_Internal_Write_File { /** * Writes file in a safe way to disk * * @param string $_filepath complete filepath * @param string $_contents file content * @param Smarty $smarty smarty instance * @return boolean true */ public static function writeFile($_filepath, $_contents, Smarty $smarty) { $_error_reporting = error_reporting(); error_reporting($_error_reporting & ~E_NOTICE & ~E_WARNING); if ($smarty->_file_perms !== null) { $old_umask = umask(0); } $_dirpath = dirname($_filepath); // if subdirs, create dir structure if ($_dirpath !== '.' && !file_exists($_dirpath)) { mkdir($_dirpath, $smarty->_dir_perms === null ? 0777 : $smarty->_dir_perms, true); } // write to tmp file, then move to overt file lock race condition $_tmp_file = $_dirpath . DS . uniqid('wrt', true); if (!file_put_contents($_tmp_file, $_contents)) { error_reporting($_error_reporting); throw new SmartyException("unable to write file {$_tmp_file}"); return false; } /* * Windows' rename() fails if the destination exists, * Linux' rename() properly handles the overwrite. * Simply unlink()ing a file might cause other processes * currently reading that file to fail, but linux' rename() * seems to be smart enough to handle that for us. */ if (Smarty::$_IS_WINDOWS) { // remove original file @unlink($_filepath); // rename tmp file $success = @rename($_tmp_file, $_filepath); } else { // rename tmp file $success = @rename($_tmp_file, $_filepath); if (!$success) { // remove original file @unlink($_filepath); // rename tmp file $success = @rename($_tmp_file, $_filepath); } } if (!$success) { error_reporting($_error_reporting); throw new SmartyException("unable to write file {$_filepath}"); return false; } if ($smarty->_file_perms !== null) { // set file permissions chmod($_filepath, $smarty->_file_perms); umask($old_umask); } error_reporting($_error_reporting); return true; } } ?> J'ai lu par ci par là que ça peut être un problème de droits d'écriture mais je ne sais pas trop où modifier ça (à la ligne 37 du fichier ci-dessus, il y a 0777, est-ce que c'est bien le droit d'écriture? ou c'est dans un autre fichier?) Je suis en train de télécharger tous mes fichiers pour refaire une installation locale et la tester vu que celle que j'ai déjà ne reproduit pas le bug. (mais elle n'est plus tout à fait identique au site en prod avec tous les tests que j'ai pu faire) Link to comment Share on other sites More sharing options...
ChDUP Posted May 30, 2014 Share Posted May 30, 2014 oui il y a à priori un problème de droits d'ecriture, voir mon edit precedent. Pour desactiver Paypal, renommer son dossier comme expliqué ci-dessus. Pour vider le cache : vider tout ce qui se trouve dans cache/smarty/compile (de tete) sauf le index.html Link to comment Share on other sites More sharing options...
Col&gram Posted May 30, 2014 Author Share Posted May 30, 2014 (edited) Pardon, je n'avais pas lu correctement pour désactiver Paypal sans le BO. Paypal semble hors de cause, activé ou non le problème est toujours là. J'ai vidé tout ce qui se trouvait dans cache/smarty/compile comme indiqué et j'ai retrouvé mon BO, ouf! Mais maintenant c'est tout le FO qui est en page blanche, si je vide le cache (pourtant désactivé) depuis le BO, le FO revient quelques instants puis se met à nouveau en page blanche. J'ai cherché de la doc concernant les droits d'écritures mais c'est un peu flou pour moi, où doit-on les modifier et comment? Autre question: comment ces droits d'écriture ont pu se modifier? ça fait un peu plus d'un an que le site tourne sans problème. (je voudrais bien comprendre le schmilblick). A savoir que je ne reproduis pas le bug avec ma copie toute fraiche en local (xampp). Le site en prod est sur un serveur mutualisé chez Nuxit. Edited May 30, 2014 by bcd (see edit history) Link to comment Share on other sites More sharing options...
Col&gram Posted May 30, 2014 Author Share Posted May 30, 2014 Ça a l'air de refonctionner mais je ne sais pas vraiment le pourquoi du comment. J'ai juste activé / désactivé tous les systèmes de caches (smarty ccc) plusieurs fois en vidant le cache à chaque fois. Je vais aller me coucher plus zen. J'espère juste que je n'aurais pas une mauvaise surprise demain, lol! Cette bizarrerie de droit d'écriture qui change tout seul m'inquiète un peu. Encore merci . Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now