Pourquoi PrestaShop sur VPS plutôt que sur mutualisé ?
Un hébergement mutualisé partage CPU, RAM et connexions MySQL entre dizaines de clients. PrestaShop génère des requêtes SQL complexes (jointures sur le catalogue, calcul de prix par groupe client, règles de promotion) et charge régulièrement des hooks PHP à chaque page. Sur mutualisé, ces pics de charge sont bridés par des quotas — et la boutique ralentit ou sort en erreur 503 précisément lors des pics de trafic (soldes, Black Friday). Sur VPS, vous disposez de ressources dédiées, d'un accès root complet et de la liberté d'installer les extensions PHP que PrestaShop requiert, d'activer Redis pour le cache de session ou ElasticSearch pour la recherche produit. Les modules premium (Faceted Search avancé, CDP, ERP connecté) tournent sans friction.
Ce que le VPS débloque pour PrestaShop
- PHP 8.2 sans contrainte — choisissez la version exacte requise par vos modules et mettez-la à jour quand vous le décidez, sans attendre le mutualisé.
- Redis pour le cache de session et le cache objet — divise par 3 à 5 le temps de réponse sur les pages catalogue à fort trafic.
- ElasticSearch / Meilisearch — recherche instantanée sur des catalogues de 10 000 produits et plus, impossible à héberger sur un mutualisé.
- Accès root et cron sans restriction — tâches planifiées PrestaShop (commandes, stocks, exports), imports CSV massifs, scripts de synchro ERP.
- Sous-domaines et multi-boutiques — une installation PrestaShop peut piloter plusieurs boutiques sur des domaines différents depuis le même back-office.
- Licences modules indépendantes — certains modules vérifient l'IP du serveur ; un VPS avec IP dédiée évite les conflits de licence.
- Snapshots et backups automatisés — chez ServOrbit, chaque VPS bénéficie de snapshots planifiés : un point de restauration avant chaque mise à jour majeure.
Prérequis chiffrés pour PrestaShop 8.x
Avant de lancer la moindre commande, vérifiez que votre VPS correspond aux exigences officielles de PrestaShop 8.x (source : devdocs.prestashop-project.org). Système : Ubuntu 24.04 LTS (recommandé) ou Debian 12. PHP : 8.1 minimum, 8.2 recommandé ; extensions requises : curl, gd, intl, mbstring, zip, xml, mysql, pdo_mysql, bcmath, fileinfo. Base de données : MySQL 8.0+ ou MariaDB 10.6+. RAM : 2 Go minimum pour une boutique de moins de 5 000 produits ; 4 Go si vous activez ElasticSearch ou dépassez 10 000 références. Disque : 5 Go minimum pour l'installation + médias produits (prévoir 20 Go pour une boutique active). Serveur web : Apache 2.4+ avec mod_rewrite et .htaccess activés, ou Nginx avec réécriture d'URL configurée. SSL : HTTPS obligatoire depuis PrestaShop 1.7.x — un certificat Let's Encrypt suffit.
Étape 1 — Installer Apache, PHP 8.2 et MySQL 8 sur Ubuntu 24.04
Connectez-vous à votre VPS en root et mettez à jour les paquets
apt update && apt upgrade -yInstallez Apache et activez les modules nécessaires
apt install -y apache2 && a2enmod rewrite headers expires && systemctl enable --now apache2Ajoutez le dépôt PHP Ondrej (PHP 8.2 non inclus dans Ubuntu 24.04 de base)
apt install -y software-properties-common && add-apt-repository ppa:ondrej/php -y && apt updateInstallez PHP 8.2 et toutes les extensions requises par PrestaShop
apt install -y php8.2 php8.2-cli php8.2-common php8.2-curl php8.2-gd php8.2-intl php8.2-mbstring php8.2-mysql php8.2-xml php8.2-zip php8.2-bcmath php8.2-fileinfo libapache2-mod-php8.2Installez MySQL 8 et sécurisez l'instance
apt install -y mysql-server && mysql_secure_installationCréez la base de données et l'utilisateur PrestaShop
mysql -u root -p -e "CREATE DATABASE prestashop CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'psuser'@'localhost' IDENTIFIED BY 'MotDePasseFort!'; GRANT ALL PRIVILEGES ON prestashop.* TO 'psuser'@'localhost'; FLUSH PRIVILEGES;"Vérifiez les versions installées
php8.2 -v && mysql --version && apache2 -v
Étape 2 — Télécharger et installer PrestaShop
Placez-vous dans le répertoire web et téléchargez PrestaShop 8.x (vérifiez la dernière version sur github.com/PrestaShop/PrestaShop/releases)
cd /var/www && wget https://github.com/PrestaShop/PrestaShop/releases/download/8.1.7/prestashop_8.1.7.zipDécompressez l'archive et renommez le dossier
apt install -y unzip && unzip prestashop_8.1.7.zip -d prestashop && cd prestashopDécompressez l'archive interne si présente (PrestaShop distribue parfois un zip dans le zip)
ls *.zip && unzip prestashop.zip -d . 2>/dev/null || trueAttribuez les permissions correctes à Apache
chown -R www-data:www-data /var/www/prestashop && find /var/www/prestashop -type d -exec chmod 755 {} \; && find /var/www/prestashop -type f -exec chmod 644 {} \;Créez le VirtualHost Apache (remplacez `boutique.example.com` par votre domaine)
nano /etc/apache2/sites-available/prestashop.conf
Collez :Activez le site et rechargez Apache
a2ensite prestashop.conf && a2dissite 000-default.conf && systemctl reload apache2Une fois l'installation terminée, supprimez impérativement le dossier `/install`
rm -rf /var/www/prestashop/install
Configurer SSL Let's Encrypt avec Certbot
HTTPS est obligatoire pour PrestaShop : le back-office bloque les connexions non sécurisées et les navigateurs modernes alertent vos clients. Installez Certbot, obtenez le certificat et laissez-le renouveler automatiquement.
Obtenir et activer un certificat SSL
Installez Certbot avec le plugin Apache
apt install -y certbot python3-certbot-apacheObtenez le certificat (remplacez le domaine et l'e-mail)
certbot --apache -d boutique.example.com --email [email protected] --agree-tos --non-interactiveVérifiez le renouvellement automatique
certbot renew --dry-run
Certbot ajoute lui-même un timer systemd ; aucune cron manuelle n'est nécessaire.
Optimiser php.ini pour PrestaShop
Les valeurs par défaut de PHP sont trop conservatrices pour une boutique en production. Éditez /etc/php/8.2/apache2/php.ini et ajustez ces directives clés :
- memory_limit = 256M (minimum ; 512M si vous utilisez des modules lourds)
- upload_max_filesize = 32M (pour les imports de photos produits en haute résolution)
- post_max_size = 32M (doit être ≥ upload_max_filesize)
- max_execution_time = 300 (indispensable pour les imports CSV de gros catalogues)
- max_input_vars = 5000 (PrestaShop génère de nombreux champs de formulaire en back-office)
- date.timezone = Europe/Paris (ou votre fuseau)
Rechargez Apache après la modification : systemctl reload apache2.
Paramétrer PrestaShop après l'installation
Une fois connecté au back-office (/admin<hash> — le hash est généré aléatoirement à l'installation, notez-le), effectuez ces réglages essentiels : désactivez le mode debug (Paramètres avancés › Performances › Mode debug = NON) ; activez le cache Smarty en mode « Recompiler les templates quand les fichiers sont mis à jour » ; activez les URL simplifiées (Boutique en ligne › Préférences de trafic › URL simplifiée = OUI) puis régénérez le .htaccess depuis le même écran ; installez et configurez le module de cache (PrestaShop 8.x inclut un module Redis natif — renseignez 127.0.0.1:6379 si Redis est installé). Modules essentiels à activer dès le départ : Security Headers, reCAPTCHA anti-spam, Google Analytics GA4.
Protégez le backoffice /admin<hash> en ajoutant une restriction par IP dans Apache. Dans votre VirtualHost, ajoutez un bloc <Location /admin<hash>> avec Require ip VOTRE.IP.FIXE. En cas d'IP dynamique, activez l'authentification HTTP basique comme deuxième couche : AuthType Basic / AuthName "Restricted" / AuthUserFile /etc/apache2/.htpasswd / Require valid-user. Créez le fichier avec htpasswd -c /etc/apache2/.htpasswd adminuser.
Dépannage — erreurs fréquentes après installation
Quelques situations courantes et leurs solutions :
Problèmes fréquents et solutions
- Écran blanc sur le front ou le back-office — activez temporairement le mode debug : éditez
/var/www/prestashop/config/defines.inc.phpet passez_PS_MODE_DEV_àtrue. Lisez l'erreur affichée, corrigez, puis repassez àfalse. - Erreur 403 sur les médias ou les images — les permissions sont incorrectes. Corrigez avec
chown -R www-data:www-data /var/www/prestashoppuisfind /var/www/prestashop -type d -exec chmod 755 {} \;. - Performances lentes sur le catalogue — installez Redis (
apt install -y redis-server) et configurez-le dans Paramètres avancés › Performances › Caching. Activez aussi le cache Smarty. - Override cache corrompu après un module défaillant — supprimez les fichiers de cache autoload :
rm -f /var/www/prestashop/cache/class_index.php /var/www/prestashop/cache/autoload/*.phpet videz le cache depuis le back-office. - mod_rewrite non actif — les URL simplifiées génèrent des 404 — vérifiez que
AllowOverride Allest bien présent dans le VirtualHost et que le module est actif :a2enmod rewrite && systemctl reload apache2.
Mettre à jour PrestaShop — procédure sécurisée
Ne mettez jamais à jour PrestaShop sans sauvegarde préalable. Procédure recommandée : (1) Créez un snapshot VPS depuis l'espace client ServOrbit. (2) Sauvegardez la base : mysqldump -u psuser -p prestashop > /root/backup_prestashop_$(date +%F).sql. (3) Installez le module officiel *PrestaShop Autoupgrade* depuis la Place de marché PrestaShop. (4) Suivez l'assistant du module — il vérifie la compatibilité de vos modules tiers avant d'appliquer la mise à jour. (5) Testez le front et le back-office, en particulier le tunnel de commande. En cas d'échec, restaurez le snapshot ou le dump SQL.
Déployer PrestaShop depuis le Marketplace ServOrbit
Si vous préférez éviter la configuration manuelle, le Marketplace ServOrbit propose un template PrestaShop 1-clic : le VPS est provisionné avec Apache, PHP 8.2, MySQL 8, Redis et PrestaShop pré-installé, certificat SSL configuré. Le déploiement prend moins de cinq minutes. Vous gardez un accès root complet et pouvez appliquer toutes les optimisations décrites dans ce guide à votre rythme.