DEVELOPPEUR WEB FREELANCE Expert e-commerce Prestashop depuis 2010

10 oct.
2014

Installation de la version 1.4 de Prestashop sur un serveur récent

Installation de la version 1.4 de Prestashop sur un serveur récent

L'installation de la version 1.4 de Prestashop peut poser quelques problèmes sur les serveurs dont la configuration est récente. Je me suis retrouvée confrontée à cela suite à la mise à jour de EasyPHP qui dispose effectivement dans sa dernière version d'une configuration beaucoup plus récente.

Pas de souci pour installer les versions 1.5 et 1.6 de Prestashop, en revanche pour la version 1.4, la troisième étape bloque et tourne dans le vide. Impossible donc de passer à l'étape suivante et de terminer l'installation.

Le problème : blocage à l'étape 3 de l'installation

Le problème est donc un blocage sur l'étape 3 de l'installation qui est l'étape de configuration de la base de données. En effet, impossible de passer cette étape qui charge dans le vide indéfiniment, bien que la base de données et le fichier settings.inc.php soient bien crées.

 

En activant la console Firebug, j'ai vu que le souci provenait d'erreurs php sur le fichier MySQL.php et plus précisément de dépréciation de mysql_connect, entre autres...

 

 

La solution : désactiver le reporting des erreurs

La solution je l'ai trouvée sur le forum Prestashop, il s'agit tout simplement d'ajouter au fichier MySQL.php une ligne de code dans la fonction connect() permettant de désactiver le reporting des erreurs.

 

Rendez-vous donc dans le dossier classes de votre boutique et ouvrez le fichier nommé MySQL.php.

 

Dans la fonction connect() :

public function connect()
    {
        if (!defined('_PS_DEBUG_SQL_'))
            define('_PS_DEBUG_SQL_', false);
        if ($this->_link = mysql_connect($this->_server, $this->_user, $this->_password))
        {
            if (!$this->set_db($this->_database))
                die('The database selection cannot be made.');
        }
        else
            die('Link to database cannot be established.');
        /* UTF-8 support */
        if (!mysql_query('SET NAMES 'utf8'', $this->_link))
            die(Tools::displayError('PrestaShop Fatal error: no utf-8 support. Please check your server configuration.'));
        // removed SET GLOBAL SQL_MODE : we can't do that (see PSCFI-1548)
        return $this->_link;
    }

Ajoutez la ligne error_reporting(0); au début de la fonction comme ceci :

public function connect()
    {
        error_reporting(0);
        if (!defined('_PS_DEBUG_SQL_'))
            define('_PS_DEBUG_SQL_', false);
        if ($this->_link = mysql_connect($this->_server, $this->_user, $this->_password))
        {
            if (!$this->set_db($this->_database))
                die('The database selection cannot be made.');
        }
        else
            die('Link to database cannot be established.');
        /* UTF-8 support */
        if (!mysql_query('SET NAMES 'utf8'', $this->_link))
            die(Tools::displayError('PrestaShop Fatal error: no utf-8 support. Please check your server configuration.'));
        // removed SET GLOBAL SQL_MODE : we can't do that (see PSCFI-1548)
        return $this->_link;
    }

Vous pouvez alors lancer l'installation normalement et la procédure devrait désormais pouvoir aller jusqu'au bout.

 

A priori cette modification ne pose pas de problèmes par la suite puisque la boutique tourne bien et ne présente aucun bug particulier, ni en back-office, ni en front-office. Vous pouvez donc essayer cette modification si vous rencontrez également ce blocage lors de l'installation de la version 1.4 de Prestashop sur votre serveur.

Auteur de cet article : Sabrina ROUSSEAU

Développeur web freelance spécialiste de la solution e-commerce Prestashop depuis 2010. Créatrice du site web Prestacrea ainsi que des produits qui y sont proposés.

COMMENTAIRES

2 commentaires

Eolia

10/10/2014

Vraiment besoin de modifier le fichier core ?
L'error_reporting peut se configurer à plusieurs endroits:
Dans le php.ini souvent en error_reporting = E_ALL | E_STRICT sur les versions supérieures à 5.4 par défaut à l'install
Dans le fichier defines.inc.php si le mode dev est à true.

Donc à voir ces 2 points avant, non ?

C'est vrai que suivant comment sont construites les requetes ajax, un affichage d'erreur dans celles-ci peut pertuber la réponse attendue...

Prestacrea

11/10/2014

Je n'ai pas testé dans le php.ini ni dans le fichier defines.inc.php mais tu as raison, autant essayer ces 2 fichiers avant de modifier le fichier core.
Cet article a été rédigé il y a plus d'un an. Les commentaires sont fermés.