Jump to content

Transfert site local <-> site distant


Recommended Posts

Bonjour, j'ai tenté de suivre ce tuto mais il ne correspond pas à version que j'ai.

Voici le contexte

J'ai un site prestashop en version 1.7.2.2, chez 1and1

Je souhaite le mettre en local pour y faire des tests avant certaines modifications.

Ce que j'ai fait sur site distant

  • Sauvegarde de la BdD MySQL depuis le site distant
  • Sauvegarde de l'intégralité du site prestashop

Ce que j'ai fait sur site local

  • Sur mon PC, j'ai installé XAMPP en version 7.1.31 pour que cela soit en cohérence avec la version PHP sur serveur 1and1 et le fait que la version 1.7.2.2 n'accepte que PHP 7.1.31
  • Via PHPMySQL, j'ai créé une nouvelle BdD, qui a le même nom que celle sur le site distant
  • J'ai créé un user/mdp pour mysql identique à celui utilisé pour le site distant
  • J'ai importé la BdD du site distant sur le MySQL local -> OK aucune erreur
  • J'ai copié l'intégralité du site dans le dossier d'apache
  • J'ai supprimé le .htaccess à la racine du site local

Et je suis bloquée ici

  • Supprimez le fichier /cache class_index.php (il sera regénéré automatiquement)
    • Je n'ai pas ce fichier dans ce répertoire
    • J'en ai 2 dans
      • \app\cache\dev
      • \app\cache\prod
  • Modifiez les valeurs de la table ps_shop_url suivant votre configuration (domaine et sous-répertoire)
    • Je mis localhost:port (j'ai changé le port car apache ne se lancait pas sur le port 80)
  • Vérifiez dans la table ps_configuration et tables de contenus (configuration, cms_lang, etc...) si des urls "en dur" ne trainent pas
    • j'ai regardé dans ps_configuration, je n'ai rien vu
    • je n'ai pas compris pour cms, lang,... est-ce les tables nommées : ps_cms, ps_cms_... si c'était ça -> OK
  • Editez le fichier /config/settings.inc.php en remplaçant les 4 valeurs suivantes par celle permettant de se connecter à votre nouvelle base:
    • define('_DB_SERVER_', 'localhost_ou_autre_suivant_votre_hébergeur');
    • define('_DB_NAME_', 'nom_de_la_base');
    • define('_DB_USER_', 'nom_du_user_autorisé_à_se_connecter_à_la_base');
    • define('_DB_PASSWD_', 'mot_de_passe_de_la_base');
      • Mon fichier settings.inc.php contient ces lignes
        • <?php
          //@deprecated 1.7

Résultat

  • 500 Server Error

J'ai mis config/defines.inc.php -> PS_MOD_DEV en true

 

 

[PrestaShopException]

Link to database cannot be established:SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: H�te inconnu.
at line 102 in file classes/db/DbPDO.php

97. public function connect() 98. { 99. try { 100. $this->link = $this->_getPDO($this->server, $this->user, $this->password, $this->database, 5); 101. } catch (PDOException $e) { 102. throw new PrestaShopException('Link to database cannot be established:'.$e->getMessage()); 103. } 104. 105. // UTF-8 support 106. if ($this->link->exec('SET NAMES \'utf8\'') === false) { 107. throw new PrestaShopException('PrestaShop Fatal error: no utf-8 support. Please check your server configuration.');

DbPDOCore->connect - [line 323 - classes/db/Db.php]

DbCore->__construct - [line 234 - classes/db/Db.php] - [4 Arguments]

DbCore::getInstance - [line 48 - config/alias.php]

pSQL - [line 339 - classes/shop/Shop.php] - [1 Arguments]

ShopCore::initialize - [line 120 - config/config.inc.php]

require - [line 27 - index.php] - [1 Arguments]

 

Je comprends que les fichiers ne trouvent pas

  • nom de la base
  • user / mdp
  • serveur

Je ne sais pas où modifier ces infos.

Merci pour votre aide

 

 

 

 

Link to comment
Share on other sites

11 minutes ago, Eolia said:

ce tuto n'est pas pas pour la 1.7, dans celle-ci les identifiants base sont dans app/parameters.php

ok merci

j'ai changé simplement

  • 'database_host' => 'localhost',

Et j'ai cela comme erreur

[PrestaShopException]

Link to database cannot be established:SQLSTATE[HY000] [1045] Access denied for user 'login_user'@'localhost' (using password: YES)
at line 102 in file classes/db/DbPDO.php

  • Je crois comprendre que c'est parce que le user local = login_user@localhost alors que le user distant = login_user@serveur_distant
  • où est-ce que je dois modifier cela
  • login / mdp / nom BdD identiquent en local et distant

 

 

 

 

Link to comment
Share on other sites

4 minutes ago, Eolia said:

C'est sur c'est plutôt login_user@localhost mais bon le pb n'est pas là.

Votre connexion à phpmyadmin est ok avec ces identifiants (login/pass) ?

Depuis XAMPP, je clique sur Admin et ça m'ouvre

http://localhost:port/phpmyadmin/index.php

Quand je cliques sur l'onglet Base de Donnée et qu'après je demande "Vérifier les privilèges" j'obtiens -> Aucun privilège

C'est étrange, pourtant quand j'ai créée la base, j'ai bien donné les droits à l'utilisateur

D'ailleurs, je ne vois plus le menu "Comptes utilisateurs"

 

Link to comment
Share on other sites

On 8/14/2019 at 9:04 PM, Eolia said:

Recréez un user

 

En fait, c'est quand je crée un user que ça déraille.

1 - Je crée un BdD

2 - Je crée un user

3 - Je donne regarde les privilèges pour la BdD et je donne tous le droit pour le user crée. J'ai laissé % dans host_base. Peut-être que je devrais y mettre le nom de la base

 

Capture.thumb.JPG.9c56c1a6e028fd171ef5b50f01eb99e4.JPG

Link to comment
Share on other sites

controluser n'a rien a voir avec prestashop c'est un user spécial vers une base de données spéciale pour les goodies phpmyadmin (dont personne ne se sert).

Désactiver les goodies dans phpmyadmin (commenter ces lignes)

//$cfg['Servers'][$i]['controluser'] = $dbuser;
//$cfg['Servers'][$i]['controlpass'] = $dbpass;

Link to comment
Share on other sites

Citation

M

Marek Gralikowski 

Jan 7, 2019, 11:40 PM  |  1317 points

 

I had analogical problem because my pc lost power and something in maria db crashed. I have a lot work on local so i wanted to try to fix it instead restore/create fresh db. I did it so i would to share with my solution:

Go to mariadb bin folder for example:
C:\laragon\bin\mysql\mariadb-10.2.13-winx64

Find my.ini and open.
Simply add single line:
skip-grant-tables
after [mysqld] group.

Example:

...
[mysqld]
skip-grant-tables
port=3306
socket=/tmp/mysql.sock
...

Now we are able to enter to mysql and phpmyadmin, in my case i use phpmyadmin and i get many errors on home page about crashed user table so i run SQL queries:

USE mysql;
CHECK TABLE user;
REPAIR TABLE user;

And voilà. Now we can remove skip-grant-tables just in case.

https://forum.laragon.org/topic/801/host-localhost-is-not-allowed-to-connect-to-this-mariadb-server/5

Link to comment
Share on other sites

  • 2 months later...
On 8/14/2019 at 2:30 PM, Eolia said:

ce tuto n'est pas pas pour la 1.7, dans celle-ci les identifiants base sont dans app/parameters.php

Enfin, il me fallait juste savoir le chemin pour la version 1.7..... un grand merci.

Ducoup le fichier Setting.inc je le remet vide comme à l'origine dans la version1.7 ? Il est important ce fichier ?

 

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...