Installation CMS · 18 min read · Oct 23, 2025

Comment installer Craft CMS sur Debian 12

Craft CMS est un système de gestion de contenu open-source pour créer toutes sortes de sites web. C’est un CMS sécurisé et évolutif avec un écosystème de plugins étendu et des plugins gratuits et payants de haute qualité. Il dispose d’un panneau de contrôle intuitif et convivial pour la création de contenu et les tâches administratives. Il est construit sur le framework PHP Yii. Le moteur de template Twig alimente son système de templating. Il peut fonctionner avec des bases de données MySQL et PostgreSQL pour le stockage et utilise la base de données Redis pour la mise en cache et le stockage des sessions.

Dans ce tutoriel, vous apprendrez comment installer Craft CMS sur un serveur Debian 12. Vous apprendrez également comment activer Redis pour travailler avec et comment sauvegarder et restaurer un site créé avec Craft CMS.

Prérequis

  • Un serveur exécutant Debian 12 avec un minimum de 1 Go de RAM.
  • Un utilisateur non-root avec des privilèges sudo.
  • Le pare-feu Uncomplicated Firewall (UFW) est activé et en cours d’exécution.
  • Un nom de domaine entièrement qualifié (FQDN) comme craftcms.example.com pointant vers votre serveur.
  • Un compte SMTP avec un service de messagerie comme Amazon SES ou Mailgun.
  • Tout est à jour. $ sudo apt update && sudo apt upgrade
  • Quelques paquets essentiels sont nécessaires pour le tutoriel et le fonctionnement de Craft CMS. Certains d’entre eux seront déjà sur votre serveur. $ sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y

Étape 1 - Configurer le pare-feu

La première étape avant d’installer des paquets est de configurer le pare-feu pour autoriser les connexions HTTP et HTTPS.

Vérifiez l’état du pare-feu.

$ sudo ufw status

Vous devriez voir quelque chose comme ceci.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Autorisez les ports HTTP et HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

Vérifiez à nouveau l’état pour confirmer.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)

Étape 2 - Installer Nginx

Debian 12 est livré avec une version plus ancienne de Nginx. Vous devez télécharger le dépôt officiel de Nginx pour installer la dernière version.

Importez la clé de signature de Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Ajoutez le dépôt pour la version stable de Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Mettez à jour les dépôts système.

$ sudo apt update

Installez Nginx.

$ sudo apt install nginx

Vérifiez l’installation. Sur les systèmes Debian, la commande suivante ne fonctionnera qu’avec sudo.

$ sudo nginx -v
nginx version: nginx/1.24.0

Démarrez le serveur Nginx.

$ sudo systemctl start nginx

Vérifiez l’état du service.

$ sudo systemctl status nginx
? nginx.service - nginx - serveur web haute performance
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
     Active: active (running) since Fri 2023-12-01 09:46:46 UTC; 18s ago
       Docs: https://nginx.org/en/docs/
    Process: 39483 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 39484 (nginx)
      Tasks: 2 (limit: 2315)
     Memory: 1.7M
        CPU: 6ms
     CGroup: /system.slice/nginx.service
             ??39484 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??39485 "nginx: worker process"

Étape 3 - Installer PHP et extensions

Debian 12 est livré avec PHP 8.2 par défaut. Vous pouvez l’installer ainsi que les extensions requises par Craft CMS en exécutant la commande suivante.

$ sudo apt install php php-cli php-common php-json php-gmp php-fpm php-xmlrpc php-bcmath php-imagick php-curl php-zip php-gd php-mysql php-xml php-mbstring php-xmlrpc php-intl php-pgsql

Pour rester toujours sur la dernière version de PHP ou si vous souhaitez installer plusieurs versions de PHP, ajoutez le dépôt PHP d’Ondrej.

Tout d’abord, importez la clé GPG du dépôt PHP de Sury.

$ sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg

Ajoutez le dépôt PHP d’Ondrej Sury.

$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

Mettez à jour votre liste de dépôts système.

$ sudo apt update

Vous recevrez probablement des informations sur les mises à jour en attente. Exécutez-les.

$ sudo apt upgrade

Installez PHP et ses extensions.

$ sudo apt install php8.2 php8.2-cli php8.2-common php8.2-gmp php8.2-fpm php8.2-xmlrpc php8.2-bcmath php8.2-imagick php8.2-curl php8.2-zip php8.2-gd php8.2-mysql php8.2-xml php8.2-mbstring php8.2-xmlrpc php8.2-intl php8.2-pgsql

Vérifiez la version de PHP installée.

$ php --version
PHP 8.2.13 (cli) (built: Nov 24 2023 13:10:42) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.13, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.13, Copyright (c), by Zend Technologies

Vérifiez l’état du service PHP.

$ sudo systemctl status php8.2-fpm
? php8.2-fpm.service - Le gestionnaire de processus PHP 8.2 FastCGI
     Loaded: loaded (/lib/systemd/system/php8.2-fpm.service; enabled; preset: enabled)
     Active: active (running) since Fri 2023-12-01 10:29:53 UTC; 34min ago
       Docs: man:php-fpm8.2(8)
    Process: 65825 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.2/fpm/pool.d/www.conf 82 (code=exited, status=0/SUCCESS)
   Main PID: 65821 (php-fpm8.2)
     Status: "Processes active: 0, idle: 3, Requests: 208, slow: 0, Traffic: 0.2req/sec"
      Tasks: 4 (limit: 2315)
     Memory: 83.4M
        CPU: 6.456s
     CGroup: /system.slice/php8.2-fpm.service
             ??65821 "php-fpm: master process (/etc/php/8.2/fpm/php-fpm.conf)"
             ??65823 "php-fpm: pool www"
             ??65824 "php-fpm: pool www"
             ??65843 "php-fpm: pool www"

Étape 4 - Configurer PHP-FPM

Ouvrez php.ini pour l’édition.

$ sudo nano /etc/php/8.2/fpm/php.ini

Pour définir les tailles de téléchargement de fichiers, changez les valeurs des variables upload_max_filesize et post_max_size. Cette valeur détermine la taille de fichier que vous pouvez télécharger sur Craft CMS. Pour nos besoins, nous la définissons à 128 Mo. Vous pouvez la définir selon vos préférences.

$ sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 128M/' /etc/php/8.2/fpm/php.ini
$ sudo sed -i 's/post_max_size = 8M/post_max_size = 128M/' /etc/php/8.2/fpm/php.ini

Configurez la limite de mémoire de PHP en fonction des ressources et des exigences de votre serveur.

$ sudo sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/8.2/fpm/php.ini

Ouvrez le fichier /etc/php/8.2/fpm/pool.d/www.conf.

$ sudo nano /etc/php/8.2/fpm/pool.d/www.conf

Nous devons définir l’utilisateur/groupe Unix des processus PHP sur nginx. Trouvez les lignes user=www-data et group=www-data dans le fichier et changez-les en nginx.

...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = nginx
group = nginx
...

De plus, trouvez les lignes listen.owner=www-data et listen.group=www-data dans le fichier et changez-les en nginx.

listen.owner = nginx
listen.group = nginx

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Redémarrez le processus PHP-fpm. Assurez-vous d’avoir Nginx installé avant de redémarrer le service PHP, sinon, il échouera car il ne pourra pas trouver le groupe nginx.

$ sudo systemctl restart php8.2-fpm

Étape 5 - Installer Composer

Composer agit comme un gestionnaire de dépendances pour PHP. C’est également le gestionnaire de dépendances du framework PHP Laravel, qui alimente Craft CMS.

Téléchargez le script d’installation de Composer.

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

Vérifiez l’installateur téléchargé.

$ php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Vous recevrez la sortie suivante.

Installer verified

Exécutez le script d’installation pour télécharger la dernière version de Composer.

$ php composer-setup.php

Supprimez le script d’installation.

$ php -r "unlink('composer-setup.php');"

Déplacez le fichier binaire téléchargé dans le répertoire /usr/local/bin.

$ sudo mv composer.phar /usr/local/bin/composer

Confirmez l’installation.

$ composer --version
Composer version 2.6.5 2023-10-06 10:11:52

Étape 6 - Installer et configurer PostgreSQL

Debian 12 est livré avec PostgreSQL 15 par défaut. Nous allons utiliser PostgreSQL 16 à la place.

Exécutez la commande suivante pour ajouter la clé GPG de PostgreSQL.

$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null

Ajoutez le dépôt APT à votre liste de sources.

$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/postgresql-key.gpg arch=amd64] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Mettez à jour le dépôt système.

$ sudo apt update

Maintenant, vous pouvez installer PostgreSQL en utilisant la commande ci-dessous.

$ sudo apt install postgresql postgresql-contrib

Le paquet postgresql-contrib contient quelques utilitaires supplémentaires.

Vérifiez la version.

$ psql --version
psql (PostgreSQL) 16.1 (Debian 16.1-1.pgdg120+1)

Vérifiez l’état du service PostgreSQL.

$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; preset: enabled)
     Active: active (exited) since Wed 2023-11-29 05:54:03 UTC; 11s ago
   Main PID: 20170 (code=exited, status=0/SUCCESS)
        CPU: 1ms

Nov 29 05:54:03 craftcms systemd[1]: Starting postgresql.service - PostgreSQL RDBMS...
Nov 29 05:54:03 craftcms systemd[1]: Finished postgresql.service - PostgreSQL RDBMS.

Vous pouvez voir que le service est activé et en cours d’exécution par défaut.

Lancez le shell PostgreSQL.

$ sudo -i -u postgres psql

Créez la base de données Craft CMS.

postgres=# CREATE DATABASE craftcms;

Créez l’utilisateur Craft CMS et choisissez un mot de passe fort.

postgres-# CREATE USER craftuser WITH PASSWORD 'Your_Password';

Changez le propriétaire de la base de données à l’utilisateur Craft CMS.

postgres-# ALTER DATABASE craftcms OWNER TO craftuser;

Accordez tous les privilèges sur la base de données à l’utilisateur Craft CMS.

postgres-# GRANT ALL PRIVILEGES ON DATABASE craftcms TO craftuser;

Quittez le shell.

postgres-# \q

Vérifiez que vos identifiants fonctionnent.

$ psql --username craftuser --password --host localhost craftcms
Password:
psql (16.1 (Debian 16.1-1.pgdg120+1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off)
Type "help" for help.

craftcms=>

Quittez le shell en tapant \q.

Étape 7 - Installer et configurer Redis

Debian 12 est livré avec Redis 7.0 par défaut, qui est ce que nous allons utiliser. Installez Redis.

$ sudo apt install redis

Vérifiez la version.

$ redis-server --version
Redis server v=7.0.11 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64 build=c4e7f6bf175a885b

Cependant, si vous souhaitez installer la dernière version, vous pouvez le faire en utilisant le dépôt officiel de Redis en émettant les commandes suivantes.

$ curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
$ echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
$ sudo apt update
$ sudo apt install redis

L’étape suivante consiste à ajouter une authentification au serveur Redis. Depuis Redis v6.0, le meilleur moyen d’ajouter une authentification est d’utiliser les ACL (Listes de Contrôle d’Accès). Ouvrez le fichier /etc/redis/redis.conf pour l’édition.

$ sudo nano /etc/redis/redis.conf

Trouvez la ligne # aclfile /etc/redis/users.acl et décommentez-la en supprimant le hash (#) devant.

aclfile /etc/redis/users.acl

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Ensuite, créez et ouvrez le fichier /etc/redis/users.acl pour l’édition.

$ sudo nano /etc/redis/users.acl

Ajoutez la ligne suivante.

user navjot on +@all ~* >yourpassword

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Redémarrez le serveur Redis pour appliquer le changement.

$ sudo systemctl restart redis

Ouvrez le shell Redis.

$ redis-cli

Utilisez la commande PING. Cela donnera une erreur d’authentification.

127.0.0.1:6379> PING
(error) NOAUTH Authentication required.

Utilisez la commande AUTH pour vous connecter.

127.0.0.1:6379> AUTH navjot yourpassword
OK

Utilisez à nouveau la commande PING.

127.0.0.1:6379> PING
OK

Quittez le shell.

127.0.0.1:6379> exit

Vous devrez également installer l’extension PHP Redis.

$ sudo apt install php-redis

Étape 8 - Installer Craft CMS

Avant d’installer Craft CMS, vous pouvez vérifier si vous répondez à toutes les exigences du serveur pour l’exécuter en utilisant la commande suivante.

$ curl -Lsf https://raw.githubusercontent.com/craftcms/server-check/HEAD/check.sh | bash

Vous obtiendrez la sortie suivante.

Running Craft Server Check…

Craft CMS Requirement Checker

This script checks if your web server configuration meets the requirements for running a Craft CMS installation.
It checks if the server is running the right version of PHP, if appropriate PHP extensions have been loaded,
and if php.ini file settings are correct.


Results:
--------

PHP 8.2+: OK

BCMath extension: OK

ctype extension: OK

cURL extension: OK

DOM extension: OK

Fileinfo extension: OK

GD extension or ImageMagick extension: OK

iconv extension: OK

Intl extension: OK

JSON extension: OK

Multibyte String extension (with Function Overloading disabled): OK

OPcache extension (with save_comments): OK

OpenSSL extension: OK

PCRE extension (with UTF-8 support): OK

PDO extension: OK

Reflection extension: OK

SPL extension: OK

Zip extension: OK

ignore_user_abort(): OK

password_hash(): OK

proc_close(): OK

proc_get_status(): OK

proc_open(): OK

proc_terminate(): OK

allow_url_fopen: OK

ini_set calls: OK

Memory Limit: OK

------------------------------------------
Errors: 0   Warnings: 0   Total checks: 27

Une fois que tout est en ordre, vous pouvez procéder. Créez le répertoire racine du web.

$ sudo mkdir /var/www/html/craftcms -p

Définissez l’utilisateur actuellement connecté comme propriétaire de ce répertoire.

$ sudo chown -R $USER:$USER /var/www/html/craftcms

Accédez au répertoire.

$ cd /var/www/html/craftcms

Téléchargez et installez Craft CMS en utilisant Composer. Le point (.) à la fin de la commande signifie que l’installation doit être effectuée dans le répertoire actuel.

$ composer create-project craftcms/craft .

Lors de l’installation, vous serez invité à fournir plusieurs détails concernant la base de données, le compte administrateur, l’URL du site et sa langue comme indiqué ci-dessous.

> @php craft setup/welcome

   ______ .______          ___       _______ .___________.
  /      ||   _  \        /   \     |   ____||           |
 |  ,----'|  |_)  |      /  ^  \    |  |__   `---|  |----`
 |  |     |      /      /  /_\  \   |   __|      |  |
 |  `----.|  |\  \----./  _____  \  |  |         |  |
  \______|| _| `._____/__/     \__\ |__|         |__|

     A       N   E   W       I   N   S   T   A   L   L
               ______ .___  ___.      _______.
              /      ||   \/   |     /       |
             |  ,----'|  \  /  |    |   (----`
             |  |     |  |\/|  |     \   \
             |  `----.|  |  |  | .----)   |
              \______||__|  |__| |_______|


Generating an application ID ... done (CraftCMS--923f03f1-9bea-4c3d-a7ca-1466645ce75d)
Generating a security key ... done (iMdcUi6wQyf9MshEda__vZcCwILbclxz)


Welcome to Craft CMS!

Are you ready to begin the setup? (yes|no) [no]:yes
Which database driver are you using? (mysql or pgsql) [mysql] pgsql
Database server name or IP address: [127.0.0.1]
Database port: [5432]
Database username: [root] craftuser
Database password:
Database name: craftcms
Database table prefix:
Testing database credentials ... success!
Using default schema "public".
Saving database credentials to your .env file ... done

Install Craft now? (yes|no) [yes]:yes

Username: [admin] navjot
Email: [email protected]
Password:
Confirm:
Site name: Howtoforge Tutorials
Site URL: https://craftcms.example.com
Site language: [en-US]
*** installing Craft

Faire fonctionner Redis avec Craft CMS

Installez le package yiisoft/yii2-redis.

$ composer require --prefer-dist yiisoft/yii2-redis:"~2.0.0"

Ouvrez le fichier /var/www/html/craftcms/config/app.php pour l’édition.

$ nano config/app.php

Vous verrez le contenu suivant.

use craft\helpers\App;

return [
    'id' => App::env('CRAFT_APP_ID') ?: 'CraftCMS',
];

Changez-le comme suit.

use craft\helpers\App;

return [
    'id' => App::env('CRAFT_APP_ID') ?: 'CraftCMS',
    'components' => [
        'cache' => function() {
            $config = [
                'class' => yii\redis\Cache::class,
                'keyPrefix' => Craft::$app->id,
                'defaultDuration' => Craft::$app->config->general->cacheDuration,

                // Détails complets de la connexion Redis :
                'redis' => [
                    'hostname' => App::env('REDIS_HOSTNAME') ?: 'localhost',
                    'port' => 6379,
                    'username' => App::env('REDIS_USERNAME') ?: null,
                    'password' => App::env('REDIS_PASSWORD') ?: null,
                ],
            ];

            return Craft::createObject($config);
        },
    ],
];

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité. Cela active Redis comme stockage de cache pour Craft CMS. Vous pouvez également utiliser Redis pour stocker les données de session PHP, la file d’attente des travaux et comme pilote mutex. Vous pouvez trouver la configuration pour cela dans la documentation de Craft CMS.

Vous devez également ajouter la configuration Redis au fichier .env.

$ nano .env

Ajoutez le code suivant à la fin du fichier.

REDIS_HOSTNAME=localhost
REDIS_USERNAME=navjot
REDIS_PASSWORD=yourpassword

Choisissez les options comme indiqué ci-dessus. Une fois terminé, changez le groupe du répertoire en nginx. De cette façon, l’utilisateur actuellement connecté et Nginx auront accès à Craft CMS.

$ sudo chgrp -R nginx /var/www/html/craftcms

Donnez au groupe nginx la permission d’écrire dans le répertoire.

$ sudo chmod -R g+w /var/www/html/craftcms

À partir de maintenant, vous n’aurez plus besoin de changer les permissions et pourrez effectuer toutes les opérations sans utiliser les privilèges root.

Étape 9 - Installer SSL

Nous devons installer Certbot pour générer le certificat SSL. Vous pouvez soit installer Certbot en utilisant le dépôt de Debian, soit obtenir la dernière version en utilisant l’outil Snapd. Nous allons utiliser la version Snapd.

Debian 12 ne vient pas avec Snapd installé. Installez le paquet Snapd.

$ sudo apt install snapd

Exécutez les commandes suivantes pour vous assurer que votre version de Snapd est à jour.

$ sudo snap install core && sudo snap refresh core

Installez Certbot.

$ sudo snap install --classic certbot

Utilisez la commande suivante pour vous assurer que la commande Certbot peut être exécutée en créant un lien symbolique vers le répertoire /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Vérifiez si Certbot fonctionne correctement.

$ certbot --version
certbot 2.7.4

Exécutez la commande suivante pour générer un certificat SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d craftcms.example.com

La commande ci-dessus téléchargera un certificat dans le répertoire /etc/letsencrypt/live/craftcms.example.com sur votre serveur.

Générez un certificat de groupe Diffie-Hellman.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Vérifiez le service de planification de renouvellement de Certbot.

$ sudo systemctl list-timers

Vous trouverez snap.certbot.renew.service comme l’un des services programmés pour s’exécuter.

NEXT                        LEFT         LAST                        PASSED     UNIT                      ACTIVATES     
---------------------------------------------------------------------------------------------------------------------------               
Fri 2023-12-01 10:39:00 UTC 12min left   Fri 2023-12-01 10:09:01 UTC 17min ago  phpsessionclean.timer    phpsessionclean.service
Fri 2023-12-01 17:01:47 UTC 6h left      Thu 2023-11-30 17:01:47 UTC 17h ago    systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Fri 2023-12-01 18:34:00 UTC 8h left      -                           -          snap.certbot.renew.timer snap.certbot.renew.service

Faites un essai à blanc du processus pour vérifier si le renouvellement SSL fonctionne correctement.

$ sudo certbot renew --dry-run

Si vous ne voyez pas d’erreurs, vous êtes prêt. Votre certificat se renouvellera automatiquement.

Étape 10 - Configurer Nginx

Ouvrez le fichier /etc/nginx/nginx.conf pour l’édition.

$ sudo nano /etc/nginx/nginx.conf

Ajoutez la ligne suivante avant la ligne include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size 64;

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Créez et ouvrez le fichier /etc/nginx/conf.d/craftcms.conf pour l’édition.

$ sudo nano /etc/nginx/conf.d/craftcms.conf

Collez le code suivant. Remplacez craftcms.example.com par votre nom de domaine. Assurez-vous que la valeur de client_max_body_size est définie sur 128 Mo, ce qui est ce que nous avons défini pour Craft CMS lors de la configuration de PHP précédemment.

server {

    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name craftcms.example.com;
    root /var/www/html/craftcms/web;

    index index.php;
    client_max_body_size 128M;

    access_log  /var/log/nginx/craftcms.access.log;
    error_log   /var/log/nginx/craftcms.error.log;

    ssl_certificate      /etc/letsencrypt/live/craftcms.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/craftcms.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/craftcms.example.com/chain.pem;

    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    location / {
        try_files $uri/index.html $uri $uri/ /index.php?$query_string;
    }

    location ~ [^/]\.php(/|$) {
        try_files $uri $uri/ /index.php?$query_string;
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_keep_conn on;
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param HTTP_PROXY "";
    }
}
# enforce HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name  craftcms.example.com;
    return 301   https://$host$request_uri;
}

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Vérifiez votre configuration Nginx.

$ sudo nginx -t

Redémarrez le serveur Nginx.

$ sudo systemctl restart nginx

Étape 11 - Accéder à Craft CMS

Ouvrez l’URL https://craftcms.example.com dans votre navigateur et vous serez dirigé vers la page suivante.

Page d'accueil de Craft CMS

Pour accéder à la page d’administration, visitez l’URL https://craftcms.example.com/admin et vous serez dirigé vers la page de connexion.

Page de connexion de Craft CMS

Entrez vos identifiants d’administration et cliquez sur la touche Se connecter pour vous connecter. Vous serez dirigé vers le tableau de bord suivant.

Tableau de bord d'administration de Craft CMS

Vous pouvez maintenant commencer à utiliser Craft CMS pour construire votre site web.

Étape 12 - Sauvegarder et restaurer Craft CMS

Vous pouvez sauvegarder la base de données de Craft CMS depuis le panneau d’administration en visitant Tableau de bord Admin >> Utilitaires >> Sauvegarde de la base de données.

Sauvegarde de la base de données de Craft CMS

Cliquez sur le bouton Sauvegarder pour télécharger votre sauvegarde de base de données. Vous pouvez également créer la sauvegarde en utilisant le terminal. Exécutez la commande suivante pour créer la sauvegarde. Entrez votre mot de passe lorsque vous y êtes invité.

$ mysqldump -u craftcmsuser -p craftcms > ~/craftcms.database.sql

Vous pouvez également créer la sauvegarde de la base de données en utilisant l’utilitaire de ligne de commande de Craft CMS. L’avantage de cet utilitaire est que vous n’avez pas besoin de passer vos identifiants de base de données. Lisez-en plus sur l’utilitaire de console de commande de Craft CMS ici.

$ cd /var/www/html/craftcms
$ php craft db/backup ~/
Backing up the database ... done
Backup file: /home/navjot/howtoforge-tutorials--2023-12-03-065138--v4.5.11.1.sql (200.019 KB)

Si vous ne spécifiez aucun emplacement dans la commande ci-dessus, le fichier de sauvegarde sera écrit dans le répertoire /var/www/html/craftcms/storage/backups.

Pour sauvegarder les fichiers, il suffit de copier et de sauvegarder l’ensemble du dossier /var/www/html/craftcms.

$ cd /var/www/html
$ tar -zcf ~/craftcms.tar.gz craftcms

Pour le restaurer sur un nouveau serveur, extrayez les fichiers dans le dossier /var/www/html.

$ tar -xzf craftcms.tar.gz -C /var/www/html/

Créez une base de données avec les mêmes identifiants sur le nouveau serveur et restaurez la base de données en utilisant la commande suivante. Entrez votre mot de passe lorsque vous y êtes invité.

$ mysqlimport -u craftcmsuser -p craftcms craftcms.database.sql

Étape 13 - Mettre à jour Craft CMS

Il existe deux façons de mettre à jour Craft CMS. L’une est depuis le panneau d’administration. Lorsqu’une mise à jour est disponible, vous recevrez un avis. Cliquez sur l’avis pour mettre à niveau. Craft CMS sauvegardera automatiquement la base de données avant d’effectuer une mise à jour.

Vous pouvez également le mettre à jour via le terminal.

Pour vérifier toutes les mises à jour disponibles, exécutez la commande suivante.

$ cd /var/www/html/craftcms/
$ php craft update

Si une mise à jour est disponible, exécutez la commande suivante pour l’appliquer.

$ php craft update all

Conclusion

Cela conclut notre tutoriel où vous avez appris comment installer le logiciel Craft CMS sur un serveur Debian 12. Si vous avez des questions, postez-les dans les commentaires ci-dessous.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.