Migrer PrestaShop sur un VPS OVH : guide complet du serveur au SSL
Guide complet pour installer et migrer PrestaShop sur un VPS OVH Cloud : configuration Apache, vhosts, SSL Let's Encrypt, transfert BDD et bonnes pratiques.
En bref : Guide complet pour migrer PrestaShop sur un VPS OVH Cloud : choix du serveur, installation de la stack (Nginx/Apache + PHP 8.1 + MariaDB), configuration des vhosts, SSL Let's Encrypt gratuit, et procédure de transfert de boutique en 6 étapes avec les bonnes pratiques de sécurité.
Pourquoi migrer PrestaShop sur un VPS ?
L'hébergement mutualisé atteint rapidement ses limites dès qu'une boutique PrestaShop génère du trafic régulier. Temps de réponse dégradés, impossible de configurer finement PHP ou MySQL, pas de SSL gratuit à l'époque des mutualisés classiques… Le VPS s'impose comme le compromis idéal entre performances et budget.
Après avoir administré des dizaines de VPS OVH Cloud pour des boutiques PrestaShop, je partage ici la méthode complète : du choix du serveur à la mise en production avec SSL.
Choisir son VPS OVH Cloud
Quelle offre retenir ?
Les VPS Cloud OVH offrent un excellent rapport performances/prix pour PrestaShop. Pour une boutique standard (catalogue < 5 000 produits, trafic < 50 000 visites/mois), un VPS Cloud 2 constitue un bon point de départ.
Points clés pour le choix :
- **RAM** : minimum 4 Go pour faire tourner MySQL + PHP-FPM + le serveur web confortablement
- **Stockage SSD** : indispensable pour les performances de la base de données
- **Localisation** : datacenter en France pour le SEO et la conformité RGPD
Conseil avancé : pour une boutique à fort trafic, envisagez deux VPS distincts — un pour l'applicatif, un pour la base de données. Cela facilite aussi la montée en charge progressive et protège contre les crashes MySQL liés au swap quand Apache consomme trop de mémoire.
Système d'exploitation
Privilégiez Ubuntu LTS ou Debian stable. Les deux partagent les mêmes commandes (base Debian), mais Ubuntu bénéficie d'une communauté plus large et de mises à jour plus fréquentes.
Évitez l'installation PrestaShop pré-packagée d'OVH. Elle installe une version souvent obsolète et crée des tables qui peuvent entrer en conflit avec votre propre installation. Mieux vaut installer un OS vierge et maîtriser toute la chaîne.
Se connecter au serveur en SSH
Après la livraison du VPS, OVH fournit les identifiants root par e-mail.
Depuis Linux ou macOS
# Connexion standard (port 22)
ssh root@votre-domaine.com
# Si vous avez changé le port SSH (recommandé pour la sécurité)
ssh root@votre-domaine.com -p 2222
Depuis Windows
Utilisez PuTTY ou, mieux encore, le terminal Windows intégré depuis Windows 10 qui supporte SSH nativement.
Sécurisation immédiate
Avant toute installation, sécurisez le serveur :
# Mettre à jour le système
apt update && apt upgrade -y
# Changer le port SSH par défaut
nano /etc/ssh/sshd_config
# Modifier la ligne : Port 2222
# Créer un utilisateur non-root
adduser prestashop
usermod -aG sudo prestashop
# Redémarrer SSH
systemctl restart sshd
Sécurité : n'utilisez jamais FTP classique (protocole non chiffré). Configurez SFTP via votre connexion SSH existante — FileZilla le supporte nativement. Si vous avez besoin d'un serveur FTP dédié, ProFTPD avec TLS reste une option, mais SFTP est largement préférable.
Installer la stack serveur
Stack recommandée en 2025
Pour PrestaShop 8.x, la stack optimale a évolué :
# Installer Nginx (plus performant qu'Apache pour PrestaShop)
apt install -y nginx
# PHP 8.1 (requis pour PrestaShop 8.x)
apt install -y php8.1-fpm php8.1-mysql php8.1-gd php8.1-curl \
php8.1-zip php8.1-xml php8.1-mbstring php8.1-intl php8.1-bcmath
# MariaDB (fork MySQL, meilleures performances)
apt install -y mariadb-server
# Sécuriser MariaDB
mysql_secure_installation
Alternative avec Apache
Si vous préférez Apache (plus de documentation PrestaShop disponible) :
apt install -y apache2 libapache2-mod-php8.1
a2enmod rewrite headers ssl
systemctl restart apache2
Note historique : en 2016, la stack classique était Apache + MySQL + PHP 5.6/7.0. Aujourd'hui, Nginx + MariaDB + PHP 8.1 offre des performances nettement supérieures, et PrestaShop 8.x exige au minimum PHP 7.4.
Configurer le Virtual Host
La configuration du vhost est une étape critique souvent source d'erreurs. Voici la méthode complète.
Avec Nginx (recommandé)
server {
listen 80;
listen [::]:80;
server_name votre-domaine.com www.votre-domaine.com;
root /var/www/votre-domaine/prestashop;
index index.php;
# Logs séparés par site
access_log /var/log/nginx/votre-domaine-access.log;
error_log /var/log/nginx/votre-domaine-error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Bloquer l'accès aux fichiers sensibles
location ~ /\. {
deny all;
}
location ~* ^/(app|bin|cache|classes|config|controllers|docs|download|mails|modules|override|src|tests|tools|translations|var|vendor)/ {
deny all;
}
}
Avec Apache
<VirtualHost *:80>
ServerAdmin admin@votre-domaine.com
ServerName votre-domaine.com
ServerAlias www.votre-domaine.com
DocumentRoot /var/www/html/votre-domaine/prestashop
ErrorLog ${APACHE_LOG_DIR}/error-votre-domaine.log
CustomLog ${APACHE_LOG_DIR}/access-votre-domaine.log combined
<Directory "/var/www/html/votre-domaine/prestashop">
AllowOverride All
Require all granted
Options -Indexes +FollowSymLinks
</Directory>
</VirtualHost>
Activation du site sous Apache :
# Activer le site
a2ensite votre-domaine.com.conf
# Vérifier la syntaxe
apachectl configtest
# Recharger Apache
systemctl reload apache2
Point important : configurez toujours vos vhosts avant d'installer le certificat SSL Let's Encrypt. Certbot a besoin de trouver un vhost valide pour le domaine afin de le configurer automatiquement.
Installer le certificat SSL avec Let's Encrypt
Depuis 2016, Let's Encrypt fournit des certificats SSL gratuits et renouvelés automatiquement. Plus aucune raison de rester en HTTP.
# Installer Certbot
apt install -y certbot
# Pour Nginx
apt install -y python3-certbot-nginx
certbot --nginx -d votre-domaine.com -d www.votre-domaine.com
# Pour Apache
apt install -y python3-certbot-apache
certbot --apache -d votre-domaine.com -d www.votre-domaine.com
# Vérifier le renouvellement automatique
certbot renew --dry-run
Après l'installation du certificat, activez le SSL dans PrestaShop :
- Back-office → **Paramètres de la boutique** → **Général**
- Activer SSL sur toutes les pages
- Forcer la redirection HTTPS
- **Offre e-mail OVH gratuite** : 10 Go inclus avec votre nom de domaine, hébergés sur les serveurs OVH — pratique pour un contact professionnel
- **SMTP dédié** : pour les e-mails transactionnels (confirmations de commande), utilisez un service spécialisé comme Brevo, Mailjet ou Amazon SES
- [ ] Le site est accessible en HTTPS
- [ ] Les images s'affichent correctement
- [ ] Le back-office est accessible
- [ ] Les commandes test fonctionnent
- [ ] Les e-mails transactionnels partent
- [ ] Les tâches cron sont reconfigurées
- [ ] Le `.htaccess` est régénéré (Paramètres de la boutique → Trafic et SEO)
- [ ] Google Search Console est mis à jour avec la nouvelle URL
- [ ] Les redirections 301 de l'ancien domaine sont en place
Transférer une boutique existante
La migration d'une boutique PrestaShop existante vers un nouveau serveur suit un protocole précis.
Étape 1 : Préparer la boutique source
# Vider tous les caches avant le transfert
# Back-office → Paramètres avancés → Performances → Vider le cache
# Ou en ligne de commande
rm -rf var/cache/prod/* var/cache/dev/* # PrestaShop 1.7+/8.x
rm -rf cache/smarty/compile/* cache/smarty/cache/* # PrestaShop 1.6
Étape 2 : Exporter la base de données
Méthode recommandée (ligne de commande) :
mysqldump -u utilisateur -p nom_de_la_base | gzip > prestashop_backup.sql.gz
Alternative via le back-office PrestaShop 1.6 : Paramètres avancés → Sauvegarde BDD (génère un .sql.bz2).
Attention : pour PrestaShop 8.x, la sauvegarde via le back-office a été retirée. Utilisez exclusivement
mysqldumpou phpMyAdmin.
Étape 3 : Transférer les fichiers
# Depuis le serveur source, créer une archive
tar czf prestashop_files.tar.gz /var/www/html/prestashop/
# Transférer via SCP (plus rapide que SFTP pour les gros volumes)
scp prestashop_files.tar.gz root@nouveau-serveur:/var/www/html/
# Sur le nouveau serveur, extraire
cd /var/www/html/
tar xzf prestashop_files.tar.gz
Étape 4 : Importer la base de données
# Créer la base et l'utilisateur sur le nouveau serveur
mysql -u root -p
CREATE DATABASE prestashop CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'ps_user'@'localhost' IDENTIFIED BY 'mot_de_passe_solide';
GRANT ALL PRIVILEGES ON prestashop.* TO 'ps_user'@'localhost';
FLUSH PRIVILEGES;
# Importer le dump
gunzip < prestashop_backup.sql.gz | mysql -u ps_user -p prestashop
Étape 5 : Mettre à jour la configuration
Fichier config/settings.inc.php (1.6) ou app/config/parameters.php (1.7+/8.x) :
// PrestaShop 8.x - app/config/parameters.php
'database_host' => 'localhost',
'database_name' => 'prestashop',
'database_user' => 'ps_user',
'database_password' => 'mot_de_passe_solide',
Mettre à jour l'URL de la boutique dans la base :
UPDATE ps_shop_url
SET domain = 'nouveau-domaine.com',
domain_ssl = 'nouveau-domaine.com'
WHERE id_shop = 1;
-- Vider le cache de configuration
TRUNCATE TABLE ps_configuration_kpi_lang;
Étape 6 : Permissions des fichiers
# Définir le propriétaire
chown -R www-data:www-data /var/www/html/prestashop/
# Permissions sécurisées (JAMAIS 777 en production !)
find /var/www/html/prestashop/ -type d -exec chmod 755 {} \;
find /var/www/html/prestashop/ -type f -exec chmod 644 {} \;
# Répertoires nécessitant l'écriture
chmod -R 775 var/ img/ upload/ download/ config/ cache/ log/ mails/
Alerte sécurité : le
chmod -R 777parfois suggéré dans les forums est une faille de sécurité majeure. Utilisez toujours des permissions restrictives avec le bon propriétaire (www-datapour Nginx/Apache).
Configurer les e-mails
Pour l'envoi d'e-mails transactionnels, deux approches :
Dans le back-office PrestaShop : Paramètres avancés → E-mail → Configurer les paramètres SMTP.
Checklist post-migration
Performances : aller plus loin
Une fois la migration terminée, optimisez votre VPS :
# Installer OPcache (cache PHP)
apt install -y php8.1-opcache
# Installer Redis pour le cache PrestaShop
apt install -y redis-server php8.1-redis
Dans PrestaShop 8.x, configurez le cache Redis dans app/config/parameters.php :
parameters:
cache.driver: 'CacheRedis'
cache.redis.host: '127.0.0.1'
cache.redis.port: 6379
Ces optimisations peuvent diviser le temps de chargement par deux sur un VPS correctement dimensionné.
Questions fréquentes
Tout ce que vous devez savoir sur ce sujet.
Un projet PrestaShop ?
Discutons-en directement.
193 projets livrés
Lire sur le blog

Alexandre Carette
Expert PrestaShop & Architecture E-commerce
Développeur PrestaShop depuis 2014, 193 projets livrés. Je conçois des architectures headless Nuxt + PrestaShop et des outils d'automatisation IA pour les e-commerçants.