Choisir un serveur pour WooCommerce
La documentation officielle de WooCommerce demande PHP 8.3 ou plus récent, MySQL 8.0 ou MariaDB 10.6 ou plus récent, HTTPS et une limite de mémoire WordPress d'au moins 256 Mo. Elle ne donne aucun chiffre pour la RAM du serveur. Pour une petite boutique, commencer avec 2 à 4 Go de RAM est raisonnable (une règle empirique qui varie selon la boutique). À mesure que les produits et les commandes augmentent, la charge sur la base de données et le processeur augmente aussi.
Une boutique ne se comporte pas comme un blog. Les pages du panier et du paiement sont différentes pour chaque visiteur, elles ne peuvent donc pas être mises en cache, et les commandes sont écrites dans la base de données toute la journée. À trafic égal, une boutique a donc souvent besoin de plus de ressources qu'un blog.
Les exigences officielles
Le document sur les exigences serveur de WooCommerce (une recommandation officielle) indique :
- PHP 8.3 ou plus récent.
- MySQL 8.0 ou plus récent, ou MariaDB 10.6 ou plus récent.
- La prise en charge de HTTPS.
- Une limite de mémoire WordPress de 256 Mo ou plus.
- Apache ou Nginx comme serveur web.
- La prise en charge des chaînes multioctets (mbstring) si votre boutique n'est pas en anglais. Le document y voit une exigence qui dépend de la boutique, et une boutique turque entre dans ce groupe.
Le chiffre de 256 Mo est un plafond pour une requête PHP, pas la RAM du serveur. Si besoin, ajoutez cette ligne à wp-config.php :
define( 'WP_MEMORY_LIMIT', '256M' );
Les anciennes versions comme PHP 7.4 n'apparaissent dans le document que comme solution de repli héritée, et elles ne sont pas recommandées.
Pourquoi une boutique diffère d'un blog
- Des pages qui ne peuvent pas être mises en cache. Le guide du cache de WooCommerce demande de garder le panier, le paiement et les pages de compte hors du cache, car elles affichent des données propres à chaque visiteur. Certains cookies, comme ceux du panier, doivent aussi être exclus. Vérifiez que votre extension de cache le fait.
- La charge en écriture. Créer des commandes, mettre à jour le stock et stocker les sessions écrivent sans cesse dans la base de données. Un blog écrit rarement, alors qu'une boutique écrit toute la journée.
- Les tâches en arrière-plan. WooCommerce exécute le travail différé (e-mails, webhooks, paiements d'abonnement) par une file de tâches intégrée appelée Action Scheduler. La file est déclenchée par WP-Cron : sur une boutique peu fréquentée, les tâches peuvent donc partir en retard. Configurer sur le serveur une tâche cron qui lance WP-Cron à intervalles réguliers (avec le réglage
DISABLE_WP_CRON) supprime cette dépendance. Vous voyez la file sous WooCommerce > Status > Scheduled Actions.
Données de commande et HPOS
High-Performance Order Storage (HPOS) conserve les commandes dans des tables propres, conçues pour cette tâche, au lieu des tables générales d'articles de WordPress. C'est le réglage par défaut des nouvelles installations depuis WooCommerce 8.2. Les anciennes boutiques ne basculent pas toutes seules. Vous l'activez sous WooCommerce > Settings > Advanced > Features, et un mode de compatibilité garde les deux structures synchronisées. Pour le serveur, l'essentiel est ceci : la structure est optimisée pour les commandes, mais la base de données a toujours besoin de mémoire et de disque.
Taille de départ
Ces valeurs sont des règles empiriques et varient selon la boutique. Ce ne sont pas des promesses fermes.
| Boutique | RAM de départ | vCores |
|---|---|---|
| Nouvelle boutique : peu de produits, peu de commandes | 2-4 Go | 1-2 |
| Boutique en croissance : des milliers de produits, des campagnes régulières | 4-8 Go | 2-4 |
| Boutique très fréquentée : campagnes fréquentes, nombreuses extensions et intégrations | 8 Go et plus | 4 et plus |
Le nombre d'extensions, la taille des images et la charge soudaine pendant une campagne comptent autant que le nombre de produits. Un cache d'objets (comme Redis) allège la charge de la base de données, mais il demande de la mémoire. Commencez petit, puis grandissez en vérifiant la sortie de free -h et de top aux heures de pointe.
Causes fréquentes de lenteur d'une boutique
- De grandes images de produits non compressées.
- Des extensions inutilisées et des scripts en trop qui s'exécutent sur chaque page.
- Pas de cache d'objets : la même requête de base de données est donc exécutée encore et encore.
- Une ancienne version de PHP qui n'est plus maintenue.
Corriger ces points passe souvent avant d'augmenter la taille. Là où augmenter la taille n'aide pas, le problème vient en général de la configuration.
Sauvegardes : une sauvegarde quotidienne peut ne pas suffire à elle seule
Chez Seturack, le serveur est sauvegardé chaque nuit et les 7 derniers jours sont conservés. Dans une boutique, les commandes arrivent toute la journée, ce qui peut donc être insuffisant. Si vous restaurez, les commandes passées depuis la dernière sauvegarde sont perdues. Faites un export de la base de données plus souvent et copiez-le ailleurs :
mysqldump --single-transaction -u USER -p DATABASE | gzip > orders-$(date +%F-%H%M).sql.gz
Dans une tâche planifiée, ne mettez pas le mot de passe sur la ligne de commande. Utilisez un fichier ~/.my.cnf dont les permissions sont réglées sur 600. Sur un serveur WooCommerce prêt à l'emploi, l'application tourne dans Docker : lancez donc les commandes de base de données depuis l'intérieur du conteneur. La base de données y est MariaDB. Le conteneur peut ne pas inclure mysqldump : utilisez alors mariadb-dump. Les images des produits se trouvent dans le dossier wp-content/uploads, copiez-le aussi.
Ce qu'il faut préparer en plus de la taille
- HTTPS. Il est obligatoire pour WooCommerce. Un serveur WooCommerce prêt à l'emploi s'ouvre en HTTPS sur une adresse dérivée de votre IP avec sslip.io. Pour relier votre propre domaine, voyez cet article.
- E-mail. Installez une extension SMTP pour que les e-mails de commande partent. L'installation ne configure pas l'envoi d'e-mails.
- Mises à jour. Après l'installation, les mises à jour de WordPress, de WooCommerce et de vos extensions vous reviennent. Créez un snapshot depuis le panneau avant une grosse mise à jour. Un snapshot ne remplace pas une sauvegarde, il vous permet seulement de revenir au point précédent.
Un serveur avec WooCommerce préinstallé est prêt en 3,5 à 4 minutes environ, et vous pouvez augmenter sa taille depuis le panneau à mesure que la boutique grandit. Jetez un œil à la page du serveur WooCommerce.
Commentaires0
Pas encore de commentaire
Soyez le premier à partager votre avis.
Veuillez vous connecter ou vous inscrire pour laisser un commentaire.