Hébergement Web-old - Erreur 500 Prestashop
... / Erreur 500 Prestashop
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Frage

Erreur 500 Prestashop

Von
Jean_CharlesT1
Erstellungsdatum 2018-09-05 09:49:35 (edited on 2024-09-04 11:18:11) in Hébergement Web-old

Bonjour,
Suite à une réinstallation de Prestashop, j'ai une erreur 500 qui apparait malgré une restauration des fichiers FTP et de la base de donnée.

Voici le message qui apparait en mode debug:

Notice: Undefined index: id_theme in /home/immovaleig/www/classes/shop/Shop.php on line 680
[PrestaShopDatabaseException]

Table '4464408-1.pss_theme' doesn't exist

SELECT su.physical_uri, su.virtual_uri, su.domain, su.domain_ssl, t.id_theme, t.name, t.directory
FROM pss_shop s
LEFT JOIN pss_shop_url su ON (s.id_shop = su.id_shop)
LEFT JOIN pss_theme t ON (t.id_theme = s.id_theme)
WHERE s.id_shop = 1
AND s.active = 1 AND s.deleted = 0 AND su.main = 1 LIMIT 1


at line 791 in file classes/db/Db.php

786. if ($webservice_call && $errno) {
787. $dbg = debug_backtrace();
788. WebserviceRequest::getInstance()->setError(500, '[SQL Error] '.$this->getMsgError().'. From '.(isset($dbg[3]['class']) ? $dbg[3]['class'] : '').'->'.$dbg[3]['function'].'() Query was : '.$sql, 97);
789. } elseif (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS')) {
790. if ($sql) {
791. throw new PrestaShopDatabaseException($this->getMsgError().'

'.$sql.'

');
792. }
Merci d'avance


50 Antworten ( Latest reply on 2018-09-11 14:36:46 Von
Jean_CharlesT1
)

perso, je ré-installerais la base en surveillant si erreurs

Merci, mais je l'ai fait à plusieurs reprises et j'ai la même erreur.

la réinstallation est en parallèle d'une installation existante? dans ce cas, inspecter la base initaile

la version prestashop installée est la même que la version initiale?

ça sent pas très bon ton erreur, voir le forum prestashop?

Oui c'est la version un 1.6

moi je ne peux pas aller plus loin.

la question à se poser: la version installée est elle la même que la version initiale?

D'accord, Merci quand même

Dans le message d'erreur, il est indiqué :


Table '4464408-1.pss_theme' doesn't exist


Cette table existe-t-elle ?

Nous avons recréé une nouvelle base de données chez OVH, car nous avion un probleme pour se connecter à phpmyadmin. Nous l'avons renommée immovaleig18 (l'ancienne était (immovaleig) et voici l'erreur qui apparait déormais.
Merci de votre aide...

Visiblement, la table _themes est absente.
Avez-vous vérifié sur phpmyadmin ?

Je ne vois que pss_themeconfigurator

Il faut retrouver cette table.
Je vous mets ce que pourrait être votre table (pour PS 1.6) :

CREATE TABLE `pss_theme` (
`id_theme` int(11) NOT NULL,
`name` varchar(64) NOT NULL,
`directory` varchar(64) NOT NULL,
`responsive` tinyint(1) NOT NULL DEFAULT '0',
`default_left_column` tinyint(1) NOT NULL DEFAULT '1',
`default_right_column` tinyint(1) NOT NULL DEFAULT '1',
`product_per_page` int(10) UNSIGNED NOT NULL DEFAULT '1'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Déchargement des données de la table `ps_theme`
--

INSERT INTO `pss_theme` (`id_theme`, `name`, `directory`, `responsive`, `default_left_column`, `default_right_column`, `product_per_page`) VALUES
(1, 'default-bootstrap', 'default-bootstrap', 1, 1, 1, 12);


Il y a 2 autres tables
pss_theme_meta (avec pas mal de lignes)
pss_theme_specific (vide chez moi)

Si vous avez bien la table theme_meta, faites correspondre l'id de la table pss_theme, avec l'id qui correspond dans theme_meta.

Bonjour,
Tout d'abord merci sincèrement pour votre aide.
J'ai suivi vos conseils, j'ai créé un fichier XML pour l'importer dans Phpmyadmin et j'ai un message d'erreur. Je vous envoi mon fichier, j'ai du commettre une erreur mais je n'arrive pas à trouver laquelle... Je vous envoi les fichiers

Sur phpmyadmin, vous ne pouvez pas coller directement mes instructions dans la fenêtre SQL ?
Car c'est déjà tout prêt.

Je n'ai pas copié votre fichier sur Myadmin, j'ai recréé un fichier XML que j'ai voulu importer.

Essayez de copier directement mon fichier sur l'onglet mysql

Merci, j'ai reussi à créer la table en collant votre fichier et j'ai une nouvelle erreur :
Sur votre fichier, il y avait d'autre infos:

Est ce que je dois les rensigner quelque part? Si oui à quel endroit?

Quelle est votre version de prestashop ?

j'aurais plutôt dit (voir début) à quelle version de prestashop correspond la base?
(installer une archive prestashop n'est pas compliqué)

Ah... vous pensez que Jean_CharlesT1 installerait une archive de PS, qui ne correspond pas avec la version installée ??
Je n'y avais pas pensé, tellement c'est pas réaliste !

@Jean_CharlesT1 : si c'est le cas, il faut absolument installer la bonne version de prestashop (qui correspond à la bdd), quitte à faire une mise à jour après (une fois que presta répond correctement).

si car dixit: ***réinstallation***

donc installer une version à jour est facile, mais la base...

edit: après si PS pas mis à jour régulièrement, pour connaître la version :/

La version est: 1.6.1.20

Effectivement j'ai une version différente sur la base 1.6.0.9
Si je fais une réinstallation, je vais écraser mes fichiers? Comment faire pour les récupérer?

les anciennes versions:
https://www.prestashop.com/fr/versions-precedentes

1.6.0.9 date de 2104.
installer avec cette version **puis** mettre en version v1.6.1.20, voire en version 1.7.4.2, branche en cours.

la base évoluera aussi en fonction

je ne connais pas en pratique, donc lire les changelog pour voir si seuils à franchir


Sur votre fichier, il y avait d'autre infos:
capture2.jpeg1416x158 51.4 KB
Est ce que je dois les rensigner quelque part? Si oui à quel endroit?

OUI

Mais comme dit au-dessus, il faut absolument une bdd en corrélation avec les fichiers réinstallés.
Entre 1.6.0.9 et une bdd 1.6.1.20, il y a probablement très peu de différence, mais ça peut tout planter.

=> concernant l'écrasement de vos fichiers actuels :
- vous pouvez déjà les sauvegarder sur votre PC.
- qu'avez-vous de spécial sur vos fichiers actuels ? Si c'est une réinstallation... rien de spécial non ?

Merci pour tout, je vais faire un resinstallation et je vous tiens au courant.

Je ne vois pas comment je peux resinstaller, sans passer par l'install de prestashop, si je passe par l'install il y aura de nouveaux fichiers et nouvelles infos sur la base de donnée, ce qui est sur c'est sera parfait mais je repartirai sur une boutique vierge. J'ai sauvegardé en local tous mes fichiers. Je pourrais remplacer sur le ftp, le dossiers img, download, upload. Est ce que je dois remplacer des fichiers type admin ou config?

Reprenons au tout début, car je ne comprends pas ce que vous avez fait, et pourquoi.
1- pourquoi réinstallez-vous ? (pas très important, mais ça peut aider à comprendre)
2- qu'avez-vous sauvegardé ?
3- quelle était votre version de prestashop au moment de votre sauvegarde.

J'ai sauvegardé en local tout mes fichiers se trouvant sur le ftp ( repertoire /www )donc tout mes fichiers prestashop version 1.6.1.20.
Le problemes est que sur ma base de donnée j'ai la version 1.6.0.9 (je ne sais pas pourquoi)
Il me semble qu'en réinstallant, il aura un rafraichement de la base de donnée et il y aura corrélation avec mes fichiers ftp.
Préconisez vous une autre solution?

avant la sauvegarde, votre site était 1.6.0.9 ou 1.6.1.20 ?

1.6.1.20

Pourquoi dites-vous, que la version de votre base de données, est 1.6.0.9 ?
Vous l'avez vu dans la table de configuration ?

Oui je l'ai vu sur la table de configuration. Je ne sais si vous vous souvenez, je vous avez dit quand j'ai commencé a avoir des erreurs, j'ai appelé le services technique d'OVH et nous avions des soucis pour se connecter à la base de données, ils n'arrivaient à résoudre le problème. Ils m'ont alors préconisé de supprimer la base et d'en recréer une nouvelle. Apparemment la sauvegarde que j'avais de la base était 1.6.0.9.

Ok, c'est quand même très bizarre, le problème que vous aviez.
A l'avenir, pensez à faire votre propre sauvegarde, pour être indépendant.

Alors, faites un test en réinstallant PS 1.6.0.9 (vous pouvez trouver toutes les version sur Prestashop)
Ensuite, mettez votre sauvegarde BDD.
Logiquement, ça doit fonctionner.
Ensuite, faite la mise à jour PS 1.6.1.20

Et enfin, remettez vos fichiers sauvegardés.

D'accord, je vous tiens au courant.
Encore merci

Après a

Après avoir tout réinstallé voici le message d'erreur qui apparait maintenant:
Link to database cannot be established: SQLSTATE[HY000] [2000] mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file

Sur quelle version de PHP êtes-vous ?
De mémoire, php 7.2 n'est supporté que sur la 1.6.1.20 (7.1 avant, mais je ne sais pas depuis quelle version)
Passez peut-être sur 5.6, le temps de faire les mises à jour.
Puis revenez à php 7.2 à la fin

Mais c'est plus pour tester, car le message semble indiquer un autre problème.

> cannot connect to MySQL 4.1

environnement **legacy** ?

J'ai suivi tout conseils mais il y a vraiment un problème entre ma base de donnée les fichiers de ma boutique. J'ai fini par faire une nouvelle en partant sur la version 1.7.2.4
Evidemment ça fonctionne. Maintenant il faudrait que je récupère les éléments de ma boutique. J'ai transféré les dossiers Imag, download et upload (en écrasant les fichiers de base). Avez vous une idée pour que je puisse retrouver l'essentiel de ma boutique, textes, seo etc.

A la main, c'est au minimum très long et fastidieux.
Avec en plus un risque d'erreur assez grand, ou l'impossibilité de comprendre comment c'est articulé dans la base de données.

Il faut importer :
- vos produits, et récupérer toutes les infos disséminées dans différentes tables + faire correspondre les images
- vos clients, et idem, les infos disséminées dans différentes tables
- vos commandes, et idem, les infos disséminées dans différentes tables


Vous n'avez jamais réussi à faire fonctionner votre base, avec une installation propre de PS ?
C'est étonnant, ou alors votre sauvegarde est vraiment corrompue.

le container utilisé est en legacy, mysql4, comme indiqué dans le dernier message d'erreur

pour restaurer la base avec PS 1.6.0.9, il faudrait donc peut-être commencer à changer la configuration en stable?

La configuration est en stable depuis hier.
C'est une vrai galère.... Je viens de retrouver une sauvegarde de la base de donnée par Prestashop version 1.6.1.18 et j'ai essayé de la restaurer via le back office Prestashop de la même version 1.6.1.18 . Mon problème vient vraiment de l'identification de la base de donnée . Le nom de l'ancienne base était : immovaleig , et la nouvelle immovaleig18.
Voici l'erreur qui m'a été retournée quand j'ai essayé de restaurer:

**[INTERNAL] /home/immovaleig/www/classes/db/DbPDO.php line 102 - PrestaShopException: Link to database cannot be established:SQLSTATE[HY000] [2000] mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file #0 /home/immovaleig/www/classes/db/Db.php(319): DbPDOCore->connect() #1 /home/immovaleig/www/classes/db/Db.php(239): DbCore->__construct('sql24.modules', '4464408-1', '2dxnkfqX', '4464408-1') #2 /home/immovaleig/www/modules/autoupgrade/classes/UpgradeContainer.php(210): DbCore::getInstance() #3 /home/immovaleig/www/modules/autoupgrade/classes/TaskRunner/Rollback/RestoreDb.php(42): PrestaShop\Module\AutoUpgrade\UpgradeContainer->getDb() #4 /home/immovaleig/www/admin3983hxqne/autoupgrade/ajax-upgradetab.php(52): PrestaShop\Module\AutoUpgrade\TaskRunner\Rollback\RestoreDb->run() #5 {main}**

Bonjour,

vous êtes sûr que cela utilise l'identifiant de la nouvelle base ?

Car typiquement ce genre d'erreur sont dû a des anciennes bases dans ancienne installation 1clic.

Pour être certains il faut faire une restauration via phpMyAdmin sur la nouvelle base avec les nouveaux identifiants.

Cordialement, janus57

Vous avez raison, mais comment faire une restauration via phpMyadmin, c'est faisable à partir d'une sauvegarde Prestashop ?

oui,
mais cela ne testera pas la comptabilité avec PS, ni ne fera les évolutions de la base en fonction de la version de PS.
donc il faudra toujours utiliser le principe version basse + MAJ

J'ai enfin réussi a installer ma base de donnée 1.6.1.18 sur PhpMyadmin et mes fichiers de la même version sur le ftp. J'ai accès a mon back office ou j'ai retrouvé les éléments de ma boutique mais j'ai des erreurs sur les modules et le images qui apparement ont gardé le nom de l'ancienne base de donnée, voilà le type de message que je reçois, je ne trouve le dossier pour modifier le nom, ici immovaleig :

Warning à la ligne 1505 du fichier /home/immovaleig/www/classes/module/Module.php
[2] file_put_contents(/home/immovaleig/www/img/tmp/f92e3b18d6dd6e74d463492c088cc351.jpg): failed to open stream: No such file or directory

Warning à la ligne 1506 du fichier /home/immovaleig/www/classes/module/Module.php
[2] copy(/home/immovaleig/www/img/tmp/f92e3b18d6dd6e74d463492c088cc351.jpg): failed to open stream: No such file or directory

Warning à la ligne 1505 du fichier /home/immovaleig/www/classes/module/Module.php
[2] file_put_contents(/home/immovaleig/www/img/tmp/1f075f7a8d34517f15aca69b5c5b3324.jpg): failed to open stream: No such file or directory

Voici mes problèmes de configuration:
ichiers manquants (12)

admin0/export/.htaccess
admin0/autoupgrade/index.php
admin0/backups/.htaccess
admin0/import/.htaccess
admin0/tabs/.htaccess
classes/.htaccess
config/.htaccess
config/xml/.htaccess
css/.htaccess
js/.htaccess
override/.htaccess
pdf/.htaccess

Fichiers modifiés (20)

LICENSES
admin0/themes/default/js/tree.js
admin0/themes/default/template/error.tpl
admin0/themes/default/template/controllers/cart_rules/product_rule.tpl
admin0/themes/default/template/controllers/modules/tab_modules_list.tpl
admin0/themes/default/template/controllers/modules/index.php
admin0/themes/default/template/controllers/themes/helpers/view/importtheme_view.tpl
classes/cache/index.php
config/defines.inc.php
js/jquery/plugins/jquery.validate-creditcard.js
js/jquery/plugins/alerts/jquery.alerts.css
js/jquery/plugins/alerts/jquery.alerts.js
js/jquery/plugins/jstree/jquery.jstree.js
js/jquery/plugins/jstree/themes/apple/style.css
js/jquery/plugins/jstree/themes/classic/style.css
js/jquery/plugins/jstree/themes/default-rtl/style.css
js/jquery/plugins/jstree/themes/default/style.css
js/jquery/plugins/smartWizard/jquery.smartWizard.js
js/jquery/plugins/treeview-categories/jquery.treeview-categories.sortable.js
js/jquery/plugins/treeview-categories/jquery.treeview-categories.async.js

Pour les fichiers temporaires :
- si vous videz le cache en admin ? (Paramètres avancés, performances)

Sinon, il faut aussi tenter de régénérer les images, via Préférences, Images

pour les fichiers .htaccess manquant :
à priori, ils sont tous identiques et ne contiennent que :
Order deny,allow
Deny from all

Je viens de faire une mise à jour en 1.7.4.2 et ça tout régénéré.... tout fonctionne enfin! J'ai encore un peu de travail de mise en place mais tout est ok
Sans vous je n'y serais pas arrivé.
Merci à tous pour votre soutien