Aller au contenu

Mise en ligne

Prérequis

  • PHP 8.1 à 8.4 avec pdo_mysql, mbstring, json (+ recommandé : zip, gd, curl, fileinfo, openssl)
  • MySQL 5.7+ / 8.x ou MariaDB 10.3+ (utf8mb4)
  • Droits d’écriture sur la racine (création de mq-config.php), content/, plugins/, themes/

Apache (mutualisé)

Le fichier .htaccess fourni gère la réécriture d’URL, la protection des dossiers sensibles, le cache et la compression. Dans un sous-dossier, décommentez et adaptez RewriteBase /sous-dossier/.

Nginx

server {
    server_name exemple.fr;
    root /var/www/mozaiq;
    index index.php;
    client_max_body_size 32m;

    location ~ ^/(core|bin|docs|content/(cache|logs|backups|form-files|labels|downloads))/ { deny all; }
    location = /mq-config.php { deny all; }
    location ~ ^/(plugins|themes|content)/.*\.php$ { deny all; }
    location ~* \.(css|js|svg|webp|avif|png|jpe?g|gif|woff2?|ico)$ { expires 1y; add_header Cache-Control "public, immutable"; try_files $uri =404; }
    location / { try_files $uri /index.php?$query_string; }
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root/index.php;
        fastcgi_param SCRIPT_NAME /index.php;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }
}

Check-list de production

  1. HTTPS (décommentez la redirection dans .htaccess) et, si besoin, 'url' => 'https://exemple.fr' dans mq-config.php
  2. Réglages › Lecture : activer le cache de pages
  3. Réglages › E-mails : configurer SMTP puis « Envoyer un e-mail de test »
  4. Réglages › Sécurité : activer la double authentification pour les administrateurs, HSTS
  5. SEO : désactiver « ne pas indexer », renseigner l’organisation, déclarer sitemap.xml dans Search Console
  6. debug à false dans mq-config.php (par défaut)
  7. Cron toutes les 5 minutes (voir ci-dessous)
  8. Sauvegardes : base MySQL + dossier content/uploads (export JSON disponible dans Outils)

Tâches planifiées (cron)

Relances de panier, newsletters, webhooks, demandes d’avis, vidage de la corbeille, taux de change… s’exécutent via les tâches planifiées. Par défaut elles sont déclenchées par les visites ; en production, ajoutez un cron toutes les 5 minutes :

*/5 * * * * php /var/www/mozaiq/bin/mozaiq cron >/dev/null 2>&1

ou appelez l’URL secrète indiquée dans Réglages › Tâches planifiées.

Performance

  • Réglages › Lecture : cache de pages, regroupement et minification CSS/JS (fichiers dans content/min/), AVIF, URL de CDN (CDN « pull »).
  • Cache objet dans mq-config.php :
'cache' => ['driver' => 'redis', 'host' => '127.0.0.1', 'port' => 6379, 'password' => '', 'db' => 0],
// ou 'apcu', 'file', 'none' (par défaut : APCu s’il est disponible)

Sécurité

Réglages › Sécurité : double authentification obligatoire par rôle, robustesse minimale des mots de passe, Content Security Policy (commencez en mode « observation »), HSTS une fois le HTTPS en place. Les secrets de double authentification sont chiffrés (AES-256-GCM) avec la clé secret de mq-config.php : ne la changez pas après installation.

Mises à jour

Réglages › Système vérifie la dernière version. « Mettre à jour » télécharge l’archive, vérifie son empreinte SHA-256, sauvegarde les fichiers actuels (content/backups/core-*.zip), passe le site en maintenance quelques secondes, remplace le cœur puis migre la base. En cas d’erreur, les anciens fichiers sont restaurés. Équivalent : php bin/mozaiq core:update. Seuls core/, admin/, bin/, docs/, themes/aurora/ et les fichiers racine sont remplacés ; content/, plugins/, les autres thèmes et mq-config.php ne sont jamais modifiés.

Tests

php bin/mozaiq test lance les tests unitaires ; ajoutez --http=https://monsite.fr pour les tests de bout en bout (pages, SEO, sitemap, API, sécurité).

Environnement portable de développement (ce poste)

start.command lance MySQL (port 3308), le CMS (http://127.0.0.1:8080) et la marketplace (http://127.0.0.1:8090) ; stop.command les arrête.