Aller au contenu

Prerequis

Avant d’installer ArtisanCMS, assurez-vous que votre environnement repond aux exigences suivantes.

Le tableau ci-dessous resume les specifications minimales et recommandees pour faire fonctionner ArtisanCMS dans de bonnes conditions.

ComposantMinimum requisRecommande
PHP8.38.4+
Composer2.xDerniere version stable
Node.js20.x22 LTS
npm10.xDerniere version stable
Base de donneesMySQL 8.0 / MariaDB 10.6MySQL 8.4+ / MariaDB 11+
Serveur webApache 2.4 ou Nginx 1.20Nginx 1.26+
Espace disque500 Mo2 Go+
RAM512 Mo1 Go+
CacheFichier (par defaut)Redis 7+

ArtisanCMS necessite PHP 8.3 ou superieur. Les extensions PHP suivantes doivent etre activees :

ExtensionDescription
BCMathCalculs mathematiques de precision arbitraire
CtypeVerification de type de caracteres
FileinfoDetection du type MIME des fichiers
JSONEncodage et decodage JSON
MbstringGestion des chaines de caracteres multi-octets
OpenSSLChiffrement et securite
PDOCouche d’abstraction d’acces aux bases de donnees
TokenizerAnalyse lexicale PHP
XMLTraitement des documents XML
GD ou ImagickManipulation et optimisation d’images

Pour verifier votre version de PHP et les extensions installees :

Fenêtre de terminal
# Version de PHP
php -v
# Extensions actives
php -m
# Verification detaillee d'une extension specifique
php -m | grep -i bcmath

Composer est le gestionnaire de dependances PHP utilise pour installer ArtisanCMS et ses packages.

Fenêtre de terminal
# Verifier la version
composer --version
# Installer Composer (si necessaire)
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
php -r "unlink('composer-setup.php');"

Node.js et npm sont necessaires pour compiler les assets front-end (React, CSS, etc.).

Fenêtre de terminal
# Verifier les versions
node -v
npm -v

ArtisanCMS supporte les moteurs de base de donnees suivants :

  • MySQL 8.0+ — Option recommandee pour la production.
  • MariaDB 10.6+ — Alternative compatible, performante en lecture.
Fenêtre de terminal
# Verifier la version MySQL
mysql --version
# Verifier la version MariaDB
mariadb --version

Assurez-vous que le jeu de caracteres par defaut est configure en utf8mb4 avec la collation utf8mb4_unicode_ci pour un support complet de l’Unicode.

Apache doit avoir le module mod_rewrite active pour la reecriture d’URL. ArtisanCMS inclut un fichier .htaccess preconfigure.

Fenêtre de terminal
# Activer mod_rewrite
sudo a2enmod rewrite
sudo systemctl restart apache2

Pour Nginx, une configuration de base est necessaire pour rediriger les requetes vers le front controller Laravel :

server {
listen 80;
server_name example.com;
root /var/www/artisancms/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}

Redis est fortement recommande pour la gestion du cache et des files d’attente (queues) en production.

Fenêtre de terminal
# Installer Redis
sudo apt install redis-server
# Verifier le fonctionnement
redis-cli ping
# Reponse attendue : PONG

Configurez ensuite les variables d’environnement dans votre fichier .env :

Fenêtre de terminal
CACHE_DRIVER=redis
QUEUE_CONNECTION=redis
SESSION_DRIVER=redis

Pour un deploiement conteneurise, ArtisanCMS fournit un fichier docker-compose.yml preconfigure. Les seuls prerequis sont :

  • Docker Engine 24+
  • Docker Compose v2+
Fenêtre de terminal
# Verifier les versions
docker --version
docker compose version

Utilisez le script suivant pour verifier que votre environnement repond aux exigences minimales :

#!/bin/bash
echo "=== Verification des prerequis ArtisanCMS ==="
echo -n "PHP 8.3+ : "
php -r "echo (version_compare(PHP_VERSION, '8.3.0', '>=') ? 'OK' : 'NON') . ' (' . PHP_VERSION . ')';" 2>/dev/null || echo "NON INSTALLE"
echo -n "Composer 2.x : "
composer --version 2>/dev/null | grep -q "2\." && echo "OK" || echo "NON"
echo -n "Node.js 20+ : "
node -v 2>/dev/null | grep -qE "v(2[0-9]|[3-9][0-9])" && echo "OK ($(node -v))" || echo "NON"
echo -n "npm 10+ : "
npm -v 2>/dev/null | grep -qE "^1[0-9]\." && echo "OK ($(npm -v))" || echo "NON"
echo -n "MySQL/MariaDB : "
mysql --version 2>/dev/null || echo "NON INSTALLE"
echo ""
echo "Extensions PHP requises :"
for ext in bcmath ctype fileinfo json mbstring openssl pdo tokenizer xml gd; do
echo -n " $ext : "
php -m 2>/dev/null | grep -qi "$ext" && echo "OK" || echo "MANQUANTE"
done