compas Posted December 7, 2020 Share Posted December 7, 2020 Bonjour, J'ai actuellement un problème d'accès à mon site suite à une mise à jour de la version 1.7.6 à la version 1.7.7 de prestashop. J'ai lancé la mise à jour avec le module clickupgrade et tout s'est bien passé, jusqu'à ce que je recoive un message disant qu'il y avait une erreur avec la base de données. A ce moment là mon écran était bloqué et je ne pouvais plus rien faire. De ce fait j'ai téléchargé une sauvegarde qui est sur mon compte Amazon S3. A la fin du téléchargement de ma sauvegarde, mon site ne fonctionne toujours pas, et j'ai ce message d'erreur : Fatal error: Uncaught Error: Class 'Cache' not found in /home/shairbeauty/public_html/classes/ObjectModel.php:1999 Stack trace: #0 /home/shairbeauty/public_html/classes/ObjectModel.php(232): ObjectModelCore::getDefinition('Shop') #1 /home/shairbeauty/public_html/classes/shop/Shop.php(128): ObjectModelCore->__construct('1', NULL, NULL) #2 /home/shairbeauty/public_html/classes/shop/Shop.php(413): ShopCore->__construct('1') #3 /home/shairbeauty/public_html/config/config.inc.php(119): ShopCore::initialize() #4 /home/shairbeauty/public_html/index.php(27): require('/home/shairbeau...') #5 {main} thrown in /home/shairbeauty/public_html/classes/ObjectModel.php on line 1999 D'après vous, comment est-ce que je peux résoudre ce problème ? Merci beaucoup pour votre aide. N'hésitez pas àme demander d'autres informations si vous avez besoin. Voici l'adresse du site : https://3s-hairbeauty.net/fr/ Link to comment Share on other sites More sharing options...
compas Posted December 7, 2020 Author Share Posted December 7, 2020 Je viens de constater que mon archive de Amazon S3 ne contenias pas le dossier "cache". J'ai fais un test en récupérant le dossier "cache" dans le prestashop initial, et je l'ai ensuite copé dans ma sauvegarde. Malheureusement ca ne focntionne toujours pas... 1ère question : Est-ce normal qu'il n'y ait pas le dossier "cache" dans ma sauveagrde Amazon S3 ? 2ème question : Est-il normal que ca ne fonctionne toujours pas en important un dossier "cache" d'origine dans ma sauvegarde ? Link to comment Share on other sites More sharing options...
compas Posted December 8, 2020 Author Share Posted December 8, 2020 Bonjour, Pouvez-vous m'aider SVP car je suis vraiment bloqué. Avez-vous besoin d'informations complémentaires ? Link to comment Share on other sites More sharing options...
HeineFR Posted December 8, 2020 Share Posted December 8, 2020 As-tu avant toute chose essayé de vider le cache et fait attention aux droits d'écriture des dossiers, surtout le répertoire cache? Link to comment Share on other sites More sharing options...
compas Posted December 8, 2020 Author Share Posted December 8, 2020 En fait j'ai tout simplement récupéré le dossier "cache" de ma version prestashop en local. Les dossiers sont en 775 Les fichiers sont en 664 Est-ce que c'est bon ? Link to comment Share on other sites More sharing options...
HeineFR Posted December 8, 2020 Share Posted December 8, 2020 C'est effectivement les bon droits. Supprime les répertoires prod & dev à l'intérieur pour forcer Prestashop à les régénérer. Au besoin active aussi le mode debug en modifiant le fichier defines.inc.php dans le répertoire config Il faut passer define('_PS_MODE_DEV_', false); en define('_PS_MODE_DEV_', true); Cela devrait donner plus d'infos. Link to comment Share on other sites More sharing options...
compas Posted December 8, 2020 Author Share Posted December 8, 2020 le mode debug était déja sur TRUE et voici le message : Fatal error: Uncaught Error: Class 'Cache' not found in /home/shairbeauty/public_html/classes/ObjectModel.php:1999 Stack trace: #0 /home/shairbeauty/public_html/classes/ObjectModel.php(232): ObjectModelCore::getDefinition('Shop') #1 /home/shairbeauty/public_html/classes/shop/Shop.php(128): ObjectModelCore->__construct('1', NULL, NULL) #2 /home/shairbeauty/public_html/classes/shop/Shop.php(413): ShopCore->__construct('1') #3 /home/shairbeauty/public_html/config/config.inc.php(119): ShopCore::initialize() #4 /home/shairbeauty/public_html/index.php(27): require('/home/shairbeau...') #5 {main} thrown in /home/shairbeauty/public_html/classes/ObjectModel.php on line 1999 Concernant les répertoires prod & Dev, je ne les trouve pas dans le dossier "cache". Ou sont-ils ? Mon répertoire "cache" comprend ces dossiers : cachefs purifier push sandbox smarty tcpdf .htaccess deprecated.txt index.php Link to comment Share on other sites More sharing options...
HeineFR Posted December 8, 2020 Share Posted December 8, 2020 Si tu ouvres le petit fichier texte dans ce répertoire (ce qui est toujours à faire lorsque tu en vois un) tu apprendrais que le répertoire de cache de la version 1.7 ne se trouve pas ici, mais dans var/cache/ Link to comment Share on other sites More sharing options...
compas Posted December 8, 2020 Author Share Posted December 8, 2020 En effet, merci du conseil 🙂 Alors je viens de supprimer DEV & PROD et maintenant j'ai un autre message d'erreur qui s'affiche : Warning: include(/home/shairbeauty/public_html/vendor/composer/../doctrine/cache/lib/Doctrine/Common/Cache/ArrayCache.php): failed to open stream: No such file or directory in /home/shairbeauty/public_html/vendor/composer/ClassLoader.php on line 444 Warning: include(/home/shairbeauty/public_html/vendor/composer/../doctrine/cache/lib/Doctrine/Common/Cache/ArrayCache.php): failed to open stream: No such file or directory in /home/shairbeauty/public_html/vendor/composer/ClassLoader.php on line 444 Warning: include(): Failed opening '/home/shairbeauty/public_html/vendor/composer/../doctrine/cache/lib/Doctrine/Common/Cache/ArrayCache.php' for inclusion (include_path='/home/shairbeauty/public_html/vendor/pear/pear_exception:/home/shairbeauty/public_html/vendor/pear/console_getopt:/home/shairbeauty/public_html/vendor/pear/pear-core-minimal/src:/home/shairbeauty/public_html/vendor/pear/archive_tar:.:/usr/lib/php:/usr/local/lib/php') in /home/shairbeauty/public_html/vendor/composer/ClassLoader.php on line 444 Fatal error: Uncaught Error: Class 'Doctrine\Common\Cache\ArrayCache' not found in /home/shairbeauty/public_html/src/Adapter/ContainerBuilder.php:194 Stack trace: #0 /home/shairbeauty/public_html/src/Adapter/ContainerBuilder.php(123): PrestaShop\PrestaShop\Adapter\ContainerBuilder->loadDoctrineAnnotationMetadata() #1 /home/shairbeauty/public_html/src/Adapter/ContainerBuilder.php(93): PrestaShop\PrestaShop\Adapter\ContainerBuilder->buildContainer('front') #2 /home/shairbeauty/public_html/classes/controller/FrontController.php(1968): PrestaShop\PrestaShop\Adapter\ContainerBuilder::getContainer('front', true) #3 /home/shairbeauty/public_html/classes/controller/Controller.php(184): FrontControllerCore->buildContainer() #4 /home/shairbeauty/public_html/classes/controller/FrontController.php(271): ControllerCore->init() #5 /home/shairbeauty/public_html/classes/controller/Controller.php(273): FrontControllerCore->init() #6 /home/shairbeauty/public_html/classes/Dispatcher.php(515): ControllerCore->run() #7 /home/shairbeauty/publi in /home/shairbeauty/public_html/src/Adapter/ContainerBuilder.php on line 194 Visiblement mon répertoire VENDOR est à l'origine du BUG non ? J'apprends au fil de l'eau...lol Link to comment Share on other sites More sharing options...
HeineFR Posted December 8, 2020 Share Posted December 8, 2020 Non, ce n'est pas le répertoire Vendor mais ton fichier ClassLoader.php qui cherche à include le fichier ArrayCache.php qu'il ne trouve pas. Link to comment Share on other sites More sharing options...
HeineFR Posted December 8, 2020 Share Posted December 8, 2020 Je viens de regarder un peu sur le forum les erreurs similaires il ressort très souvent une mauvaise copie ou mauvais restauration du répertoire Vendor Link to comment Share on other sites More sharing options...
compas Posted December 8, 2020 Author Share Posted December 8, 2020 Tu me propose de télécharger tout le fichier vendor de mon prestashop local, sur ma sauvegarde ? Ou seulement quelques dossiers ? Link to comment Share on other sites More sharing options...
HeineFR Posted December 8, 2020 Share Posted December 8, 2020 Ne sachant pas exactement qui est quoi dans ton cas (local / pas local / backup ), Sauvegarde bien ce que tu as actuellement et upload une autre version que tu as en te permettant au passage de vérifier si le fichier qu'il cherche à inclure s'y trouve bien. Link to comment Share on other sites More sharing options...
compas Posted December 8, 2020 Author Share Posted December 8, 2020 J'ai profité de ma situation pour télécharger tous les fichiers de la dernière version de prestashop 1.7.7 (comme si je faisais une mise à jour standard par FTP). J'ai donc téléchargé la version gratuite de prestashop 1.7.7. Je pense que ca permet d'avancer un peu car mon message d'erreur à changé, et est davantage centré sur le fichier Cart.php Qu'en penses-tu ? (1/1) ContextErrorException Warning: Declaration of Cart::updateQty($quantity, $id_product, $id_product_attribute = NULL, $id_customization = false, $operator = 'up', $id_address_delivery = 0, ?Shop $shop = NULL, $auto_add_cart_rule = true, $skipAvailabilityCheckOutOfStock = false) should be compatible with CartCore::updateQty($quantity, $id_product, $id_product_attribute = NULL, $id_customization = false, $operator = 'up', $id_address_delivery = 0, ?Shop $shop = NULL, $auto_add_cart_rule = true, $skipAvailabilityCheckOutOfStock = false, bool $preserveGiftRemoval = true) in Cart.php at ErrorHandler->handleError(2, 'Declaration of Cart::updateQty($quantity, $id_product, $id_product_attribute = NULL, $id_customization = false, $operator = \'up\', $id_address_delivery = 0, ?Shop $shop = NULL, $auto_add_cart_rule = true, $skipAvailabilityCheckOutOfStock = false) should be compatible with CartCore::updateQty($quantity, $id_product, $id_product_attribute = NULL, $id_customization = false, $operator = \'up\', $id_address_delivery = 0, ?Shop $shop = NULL, $auto_add_cart_rule = true, $skipAvailabilityCheckOutOfStock = false, bool $preserveGiftRemoval = true)', '/home/shairbeauty/public_html/override/classes/Cart.php', 0, array('className' => 'Cart', 'classDir' => '/home/shairbeauty/public_html/')) in PrestaShopAutoload.php line 152 at require_once() in PrestaShopAutoload.php line 152 at PrestaShopAutoload->load('Cart') in DebugClassLoader.php line 159 at DebugClassLoader->loadClass('Cart') at spl_autoload_call('Cart') in FrontController.php line 416 at FrontControllerCore->init() in Controller.php line 287 at ControllerCore->run() in Dispatcher.php line 518 at DispatcherCore->dispatch() in index.php line 28 Link to comment Share on other sites More sharing options...
HeineFR Posted December 8, 2020 Share Posted December 8, 2020 Si tu as juste envoyé les fichier d'une autre version de prestashop sans respecter le protocole à appliquer et d'autant plus sans faire de mise à jour de ta base de données j'ai peur que tu ne fasses que remuer une salade... 😕 Link to comment Share on other sites More sharing options...
HeineFR Posted December 8, 2020 Share Posted December 8, 2020 Tu as visiblement un override sur le fichier Cart, ce dernier, selon le module en question peut ne pas être compatible ps 1.7.7 Link to comment Share on other sites More sharing options...
compas Posted December 8, 2020 Author Share Posted December 8, 2020 Oui tu as surement raison, mais j'avoue que je suis complétement démoralisé... Je pensais être en sécurité en effectuant des sauvegardes sur Amazon S3, mais visiblement ce n'est pas le cas... Me conseilles tu de réinstaller une nouvelle fois une sauvegarde, et espérer que cette fois cela puisse fonctionner correctement ? Link to comment Share on other sites More sharing options...
HeineFR Posted December 8, 2020 Share Posted December 8, 2020 Repart de Zéro : Déplace tous les fichiers actuellement sur l'hébergement dans un autre répertoire commençant par un "_" et avec un nom complexe un pour garder un "instantané" en le mettant à l'abris de divers robots Renvoie proprement ta sauvegarde. Supprime les fichiers de cache dans /var/cache Et dis nous ce qu'il en est. Précise nous aussi au passage les version PHP & MySQL Link to comment Share on other sites More sharing options...
compas Posted December 8, 2020 Author Share Posted December 8, 2020 Daccord je vais faire tout ca. Je pense que je donnerais réponse demain, car il va me falloir du temps pour le téléchargement de la sauvegarde. Je vais demander à mon hébergeur de faire l'import à ma place, afin que tout se fasse proprement. En tout cas merci pour ton aide que tu m'apporte 🙂 Link to comment Share on other sites More sharing options...
HeineFR Posted December 8, 2020 Share Posted December 8, 2020 Avec plaisir, bonne nuit. Link to comment Share on other sites More sharing options...
compas Posted December 9, 2020 Author Share Posted December 9, 2020 Bonjour, Voilà, mon hébergeur vient de restaurer ma sauvegarde et voici le message d'erreur : Fatal error: Uncaught Error: Class 'Cache' not found in /home/shairbeauty/public_html/classes/ObjectModel.php:1999 Stack trace: #0 /home/shairbeauty/public_html/classes/ObjectModel.php(232): ObjectModelCore::getDefinition('Shop') #1 /home/shairbeauty/public_html/classes/shop/Shop.php(128): ObjectModelCore->__construct('1', NULL, NULL) #2 /home/shairbeauty/public_html/classes/shop/Shop.php(413): ShopCore->__construct('1') #3 /home/shairbeauty/public_html/config/config.inc.php(119): ShopCore::initialize() #4 /home/shairbeauty/public_html/index.php(27): require('/home/shairbeau...') #5 {main} thrown in /home/shairbeauty/public_html/classes/ObjectModel.php on line 1999 Version PHP : 7.3Version MySQL : 5.6 Visiblement le problème serait bien toujours du au Cache. Quel est ton analyse ? Link to comment Share on other sites More sharing options...
HeineFR Posted December 9, 2020 Share Posted December 9, 2020 Si tu as bien restauré ton prestashop 1.7.6 ta version de PHP n'est pas bonne, peux tu me confirmer cela? 1 Link to comment Share on other sites More sharing options...
compas Posted December 9, 2020 Author Share Posted December 9, 2020 Oui en effet, la version PHP n'était pas bonne. Je viens donc de passer en 7.2 Certe le message d'erreur, mais au moins la version de PHP est maintenant correcte. Link to comment Share on other sites More sharing options...
HeineFR Posted December 9, 2020 Share Posted December 9, 2020 1 hour ago, compas said: Certe le message d'erreur, mais au moins la version de PHP est maintenant correcte. Il manque un mot dans votre phrase, c'est toujours le même message d'erreur? Avz-vous revidé le cache apres avoir changé la version de PHP? Link to comment Share on other sites More sharing options...
compas Posted December 9, 2020 Author Share Posted December 9, 2020 Oups désolé oui vous avez raison. En effet message d'erreur est le même, et je nai pas vidé le cache après modification de la version PHP. Vu qu'il y a plusieurs cache, lequel fait il que je vide ? Le répertoire a la Racine du site ? Le répertoire dans /var/cache ? Link to comment Share on other sites More sharing options...
HeineFR Posted December 9, 2020 Share Posted December 9, 2020 Le cache qui est le plus souvent à vider en cas de problème est celui de /var/cache Link to comment Share on other sites More sharing options...
compas Posted December 9, 2020 Author Share Posted December 9, 2020 Je viens à l'instant de vider le cache des dossiers PROD & DEV, mais le message d'erreur est toujours le même. J'ai également supprimé le cache de mon navigateur. Fatal error: Uncaught Error: Class 'Cache' not found in /home/shairbeauty/public_html/classes/ObjectModel.php:1999 Stack trace: #0 /home/shairbeauty/public_html/classes/ObjectModel.php(232): ObjectModelCore::getDefinition('Shop') #1 /home/shairbeauty/public_html/classes/shop/Shop.php(128): ObjectModelCore->__construct('1', NULL, NULL) #2 /home/shairbeauty/public_html/classes/shop/Shop.php(413): ShopCore->__construct('1') #3 /home/shairbeauty/public_html/config/config.inc.php(119): ShopCore::initialize() #4 /home/shairbeauty/public_html/index.php(27): require('/home/shairbeau...') #5 {main} thrown in /home/shairbeauty/public_html/classes/ObjectModel.php on line 1999 Link to comment Share on other sites More sharing options...
HeineFR Posted December 9, 2020 Share Posted December 9, 2020 je t'invite à regarder ce qui a été fait par ces membres qui ont eu le même problème pour faire le point sur les données que tu pourrais ne pas avoir transféré ou supprimé : Link to comment Share on other sites More sharing options...
compas Posted December 9, 2020 Author Share Posted December 9, 2020 Ok je regarde ca de suite. Je n'arrive pas à trouver dans quel fichier je peut modirifer cela : define('_PS_CACHE_ENABLED_', '0'); Je ne le trouve pas dans mon fichier defines.inc.php. Dans quel fichier faut il regarder pour prestashop 1.7 ? Link to comment Share on other sites More sharing options...
HeineFR Posted December 9, 2020 Share Posted December 9, 2020 PrestaShop 1.7 Edit: app/config/parameters.php You have to set value of ps_cache_enable to false. 'ps_cache_enable' => false, Then, save the file. Link to comment Share on other sites More sharing options...
compas Posted December 9, 2020 Author Share Posted December 9, 2020 Je viens donc de suivre les étapes décrites dans le lien que vous m'avez envoyé. j'ai du ajouter les dossiers cache dans : /public_html/ /public_html/classes/ Par contre, le fichier cache de mon théme /public_html/themes/montheme/cache n'est pas présent, mais je ne vois pas comment le récupérer... Aprés avoir fait ces modifications j'ai maintenant ce message d'erreur : Fatal error: Uncaught Error: Class 'Cache' not found in /home/shairbeauty/public_html/classes/db/Db.php:595 Stack trace: #0 /home/shairbeauty/public_html/classes/shop/Shop.php(345): DbCore->executeS('SELECT s.id_sho...') #1 /home/shairbeauty/public_html/config/config.inc.php(119): ShopCore::initialize() #2 /home/shairbeauty/public_html/index.php(27): require('/home/shairbeau...') #3 {main} thrown in /home/shairbeauty/public_html/classes/db/Db.php on line 595 dans le lien que vous m'avez envoyé il est écrit ca : Quote Une fois ajouté j'ai supprimé le fichier index.php puis à nouveau class_index.php du premier dossier cache ...le problème est que je ne trouve pas ce fichier dans /public_html/cache et je ne sais pas ou le récupérer... Link to comment Share on other sites More sharing options...
HeineFR Posted December 9, 2020 Share Posted December 9, 2020 Ca va être compliqué d'essayer de te guider à distance sans avoir la main et sans avoir exactement tout ce qui a été fait ou pas fait... Je te conseille de créer une nouvelle base de données et de tenter une installation fraiche en 1.7.6 pour s'assurer que cela tourne bien sur ton hébergement en vérifiant bien que ce soit en PHP 7.2. Si cela fonctionne, Tu écrases l'install fresh avec tes fichiers backup de quand tu étais en 1.7.6 Tu vides les répertoires /var/cache Tu remplaces également la base de données avec ton backup en 1.7.6 Tu modifies les identifiants de connexion à la base de données pour que le PS se connecte bien sur la dernière que tu as créé (dans le répertoire app il me semble). 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