Howto PrestaShop

Documentation :

PrestaShop est une application web pour créer une boutique en ligne. Le code source est en PHP, il est disponible sur disponible sur Github.

Prérequis

https://docs.prestashop-project.org/v.8-documentation/french-1/guide-demarrage/ce-dont-vous-avez-besoin https://devdocs.prestashop-project.org/8/basics/installation/system-requirements/

  • Serveur web Apache ou Nginx.
  • MySQL 5.6 ou plus.
  • PHP 8.1 pour Prestashop 8 et voir ce tableau pour Prestashop < 8.
  • Extensions PHP indispensables : curl, dom, fileinfo, gd, iconv, intl, json, mbstring, openssl PDO, pdo_mysql, SimpleXML, zip.

Réglages PHP pour :

  • allow_url_fopen = On ;
  • allow_url_include = Off ;
  • memory_limit = 256M ;
  • register_globals = Off ;
  • upload_max_filesize = 16M.

Réglages Apache :

  • Désactiver la séparation Apache-ITK pour ce vhost : AssignUserID foo foo puis, si on utilise PHP-FPM, suivre aussi /HowtoApache#gestion-des-droits-avec-apache-itk-et-php-fpm ;
  • mod_rewrite activé ;
  • mod_security désactivé ;
  • mod_auth_basic désactivé ;
  • AllowOverride AuthConfig Limit FileInfo Indexes Options=all,multiviews.

Bonus :

  • possibilité d’avoir des tâches cron ;
  • Memcached.

Installation

Télécharger la dernière version stable de PrestaShop par archive ou par dépôt git.

git clone https://github.com/PrestaShop/PrestaShop.git

Selon la version, peut avoir un problème dans le fichier config/autoload.php : commenter la ligne qui gène si optionnel.

  • Utiliser la ligne de commande pour installer prestashop:
$ php './install-dev/index_cli.php' --language=fr --timezone='localhost' --base_uri='/' --domain='{{ host }}' \
 --db_server='{{ db_host }}' --db_user='{{ db_user }}' --db_password='{{ db_pwd }}' --db_name='{{ db_name }}' \
 --db_clear=0 --db_create=0 --name='{{ site_title }}' --firstname='{{ firstname }}' --lastname='{{ lastname }}' \
 --password='{{ admin_pwd }}' --email='{{ admin_email }}' --newsletter=0
  • supprimer le repertoire install-dev
  • Après installation :
$ mv admin/ admin$RANDOM/

Administration

Vider le cache :

$ rm -rf var/cache/prod

Optimisation

Utiliser Memcached

Modules

Soucis connu avec gamification

Le module gamification fait appel à une ip externe, qui, si ne répond pas, empêche une connexion à l’interface admin (la connexion sera très lente, voir impossible). Le mieux est de désactiver le module (temporairement du moins) en renommant le répertoire du module:

$ mv ~/www/modules/gamification{,.old}