Jump to content

Mise à jour 1.7.2 > 1.75 impossible


Recommended Posts

Bonjour,

J'utilise un site sous Prestashop 1.7.2.x, existant depuis novembre 2017, et qui n'avais jamais fait l'objet de mise à jour depuis (sauf les modules). Souhaitant utiliser un thème nécessitant au minimum la version 1.7.4.x, je dois donc mettre à jour Prestashop, vers la dernière version en vigueur : 1.7.5.x, en passant par le module officiel de mise à jour... 

Sauf que cela ne s'est pas passé normalement...

Après avoir fait une sauvegarde complète de mes fichiers (+ de 6go, 26h de téléchargement...) et de ma base de données et d'avoir mis le site en mode maintenance, toutes les conditions demandées par le module de mise à jour étaient cochées.

Après avoir sauvegardé et mis à jour + de 20000 fichiers, sauvegardé la base de données, le module passe à la mise à jour de la base de données : après quelques requêtes indiquées en verte, ensuite des warnings en jaune, le système bloque avec l'erreur suivante, qui pourtant n'a rien à voir avec la base de données :

[INTERNAL] /srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php line 667 - Call to undefined method Symfony\Component\Yaml\Parser::parseFile()

De là, impossible bien sûr de continuer, je suis allé chercher ce fameux fichier YamlFileLoader.php, voir la ligne 667 :

Quote

666       try {
667                    $configuration = $this->yamlParser->parseFile($file, Yaml::PARSE_CONSTANT | Yaml::PARSE_CUSTOM_TAGS);
668             } catch (ParseException $e) {
669            throw new InvalidArgumentException(sprintf('The file "%s" does not contain valid YAML.', $file), 0, $e);
670          } finally {
671            restore_error_handler();
672         }

J'ai regardé mes logs :

Quote

[08-Feb-2019 10:13:10 UTC] PHP Warning:  require(/srv/data/web/vhosts/www.MONSITE.fr/htdocs/config/../app/autoload.php): failed to open stream: No such file or directory in /srv/data/web/vhosts/www.MONSITE.fr/htdocs/config/autoload.php on line 33

[08-Feb-2019 10:13:10 UTC] PHP Fatal error:  require(): Failed opening required '/srv/data/web/vhosts/www.MONSITE.fr/htdocs/config/../app/autoload.php' (include_path='.:/usr/share/php:/srv/data/web/includes') in /srv/data/web/vhosts/www.MONSITE.fr/htdocs/config/autoload.php on line 33

[08-Feb-2019 10:13:12 UTC] PHP Warning:  require(/srv/data/web/vhosts/www.MONSITE.fr/htdocs/config/../app/autoload.php): failed to open stream: No such file or directory in /srv/data/web/vhosts/www.MONSITE.fr/htdocs/config/autoload.php on line 33

[08-Feb-2019 10:13:12 UTC] PHP Fatal error:  require(): Failed opening required '/srv/data/web/vhosts/www.MONSITE.fr/htdocs/config/../app/autoload.php' (include_path='.:/usr/share/php:/srv/data/web/includes') in /srv/data/web/vhosts/www.MONSITE.fr/htdocs/config/autoload.php on line 33

[08-Feb-2019 10:13:24 UTC] PHP Warning:  require(/srv/data/web/vhosts/www.MONSITE.fr/htdocs/config/../app/autoload.php): failed to open stream: No such file or directory in /srv/data/web/vhosts/www.MONSITE.fr/htdocs/config/autoload.php on line 33

[08-Feb-2019 10:13:24 UTC] PHP Fatal error:  require(): Failed opening required '/srv/data/web/vhosts/www.MONSITE.fr/htdocs/config/../app/autoload.php' (include_path='.:/usr/share/php:/srv/data/web/includes') in /srv/data/web/vhosts/www.MONSITE.fr/htdocs/config/autoload.php on line 33

[08-Feb-2019 10:13:38 UTC] PHP Warning:  require(/srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/composer/../symfony/polyfill-ctype/bootstrap.php): failed to open stream: No such file or directory in /srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/composer/autoload_real.php on line 61

[08-Feb-2019 10:13:38 UTC] PHP Fatal error:  require(): Failed opening required '/srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/composer/../symfony/polyfill-ctype/bootstrap.php' (include_path='/srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/pear/pear_exception:/srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/pear/console_getopt:/srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/pear/pear-core-minimal/src:/srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/pear/archive_tar:.:/usr/share/php:/srv/data/web/includes') in /srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/composer/autoload_real.php on line 61

[08-Feb-2019 10:13:45 UTC] PHP Warning:  require(/srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/composer/../symfony/polyfill-ctype/bootstrap.php): failed to open stream: No such file or directory in /srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/composer/autoload_real.php on line 61

[08-Feb-2019 10:13:45 UTC] PHP Fatal error:  require(): Failed opening required '/srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/composer/../symfony/polyfill-ctype/bootstrap.php' (include_path='/srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/pear/pear_exception:/srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/pear/console_getopt:/srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/pear/pear-core-minimal/src:/srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/pear/archive_tar:.:/usr/share/php:/srv/data/web/includes') in /srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/composer/autoload_real.php on line 61

[08-Feb-2019 11:14:13 Europe/Paris] PHP Fatal error:  Call to undefined method Symfony\Component\Yaml\Parser::parseFile() in /srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php on line 667

[08-Feb-2019 11:14:31 Europe/Paris] PHP Fatal error:  Call to undefined method Symfony\Component\Yaml\Parser::parseFile() in /srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php on line 667

[08-Feb-2019 11:14:38 Europe/Paris] PHP Fatal error:  Undefined class constant 'HEADER_X_FORWARDED_ALL' in /srv/data/web/vhosts/www.MONSITE.fr/htdocs/admin5647niof7/index.php on line 84

[08-Feb-2019 11:14:41 Europe/Paris] PHP Fatal error:  Call to undefined method Symfony\Component\Yaml\Parser::parseFile() in /srv/data/web/vhosts/www.MONSITE.fr/htdocs/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Loader/YamlFileLoader.php on line 667

 

Après quelques recherches infructueuses et devant remettre le site opérationnel rapidement, j'ai dû faire machine arrière et lancer l'outil de restauration du module... et là, encore une erreur...

[INTERNAL] /srv/data/web/vhosts/www.MONSITE.fr/htdocs/config/config.inc.php line 124 - Call to a member function getName() on null
Quote

124     define('_THEME_NAME_', $context->shop->theme->getName());

Pareil, des recherches qui ne donnent rien, et dans un dernier espoir de revoir le site fonctionnel, je reclique sur le bouton pour relancer la restauration... et le site refonctionne, mais en version 1.7.2.x, c'est déjà ça.

 

Avez-vous déjà été confronté à ce problème ? Comment faire en sorte que je puisse mettre à jour PS ?

J'ai détaillé un max ma procédure, mais si vous souhaitez d'autres infos afin de m'aider, c'est avec plaisir.

D'avance merci !!

Link to comment
Share on other sites

Bonjour,

On ne le rappellera jamais assez, on test sur un copie avant de lancer en production la mise à jour.

Dans votre cas, quelle version de PHP utilisez vous ?

Pas besoin d'activer la sauvegarde lors de la mise à jour si vous l'avez faite manuellement avant (et que vous savez la restaurer).

Link to comment
Share on other sites

Donc, dans ce genre de cas, il peut être intéressant d'apprendre à tout gérer en connexion SSH.

C'est rapide et surtout cela reste sur votre serveur et évite les soucis.

Sinon, comme vous avez vos fichiers en local, vous pouvez les mettre en oeuvre sur une installation serveur LAMP sur votre ordi et de faire vos tests de mise à jour en local.

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...