Comment installer Craft CMS avec Nginx sur Ubuntu 20.04

Craft CMS est un système de gestion de contenu gratuit et open-source pour les sites Web. Soutenu par une communauté importante et croissante de développeurs et de concepteurs, il offre une gamme de fonctionnalités innovantes avec un design élégant qui le rend facile à utiliser. Il te permet aussi de contrôler chaque aspect du développement de ton site.

C’est une excellente alternative à WordPress et Drupal, qui sont deux des systèmes de gestion de contenu les plus populaires utilisés aujourd’hui.

Un système de gestion de contenu (CMS) est un logiciel utilisé pour faciliter la gestion du contenu Web, comme l’édition du contenu ou l’ajout de nouvelles pages et images. L’exploitation d’un site Web peut être difficile si tu dois créer chaque page individuellement dans le code en utilisant le HTML ou d’autres langages de balisage ; cela peut poser des problèmes si plusieurs personnes travaillent en même temps sur ton site car il se peut qu’il n’y ait pas d’accord sur la façon dont certains éléments doivent se présenter ou se comporter.

L’utilisation d’un CMS te permet de définir la structure générale de chaque page ainsi que des éléments spécifiques, comme un article de blog ou une description de produit ; ensuite, lorsque quelqu’un d’autre doit modifier ces informations, il lui suffit d’utiliser le CMS.

Ce guide montre comment installer Craft CMS sur Ubuntu 20.04 LTS (Focal Fossa). Il te montrera comment installer Craft CMS sur ton serveur Ubuntu. Si tu veux utiliser la base de données MySQL/MariaDB, ce guide t’aidera aussi à l’installer.

Le processus d’installation de Craft CMS sur Ubuntu est similaire quelle que soit la distribution et la version que tu utilises, tu devrais donc pouvoir suivre ce guide même si ton système est légèrement différent. Ce tutoriel a été créé en tenant compte d’une installation fraîche d’Ubuntu ; cependant, certaines étapes peuvent varier légèrement en fonction de la configuration actuelle de ton serveur.

Conditions préalables

Pour suivre ce guide, tu auras besoin de quelques éléments :

  • Un serveur exécutant Ubuntu 20.04 LTS.
  • Un utilisateur non-root avec des privilèges sudo configuré sur ton serveur Ubuntu.

Démarrage

Mise à jour de ton système

Tout d’abord, connecte-toi à ton serveur en tant qu’utilisateur non-root en exécutant la commande ci-dessous :

ssh [email protected]_instance_ip

Le nom d’utilisateur est root, tu te connectes au serveur ‘instance_ip’ en utilisant le protocole SSH

ton_instance_ip est l’adresse IP privée de ton serveur où Craft CMS sera installé.

Mets à jour ton système d’exploitation en exécutant la commande ci-dessous :

sudo apt update && sudo apt upgrade -y

sudo apt update est exécutée pour s’assurer que ton système Ubuntu est à jour. Cette commande fera en sorte qu’Ubuntu télécharge de nouveaux paquets Ubuntu depuis les dépôts Ubuntu et les installe sur ton système d’exploitation Ubuntu. Ubuntu utilise un dépôt (ou plus précisément, des « dépôts ») qui sont des centres de distribution de logiciels d’où Ubuntu obtient toutes ses applications.

sudo apt upgrade est une commande Ubuntu pour mettre à jour et mettre à niveau les logiciels Ubuntu. Cette commande met à jour ton logiciel Ubuntu, ce qui inclut la mise à jour du noyau Ubuntu, des paquets installés et de toute nouvelle version du logiciel Ubuntu.

-y est la forme courte de –yes. La commande Ubuntu ‘apt upgrade -y’ signifie qu’Ubuntu dira automatiquement oui à toute demande de mise à jour du logiciel Ubuntu.

Si tu obtiens des erreurs lors de l’exécution de cette commande, tu devras peut-être corriger les erreurs avec le Centre logiciel Ubuntu ou via un terminal. Tu peux le faire en tapant sudo apt-get -f install et en suivant les instructions du Centre logiciel Ubuntu pour résoudre tous les problèmes, ou tu peux utiliser la commande du terminal « sudo dpkg –configure -a » pour corriger les erreurs, puis réexécuter la commande ci-dessus.

sudo apt-get -f install
sudo dpkg --configure -a

Exemple de sortie :

Force l'installation des paquets

Installation des dépendances

Installe les dépendances en exécutant la commande ci-dessous :

sudo apt install -y curl wget vim git unzip socat 

curl est pour Ubuntu pour télécharger les mises à jour d’Ubuntu à partir des dépôts Ubuntu. wget est un logiciel libre pris en charge dans Ubuntu et d’autres systèmes d’exploitation Linux pour obtenir des fichiers en utilisant les protocoles HTTP, HTTPS et FTP.

vim est un éditeur de texte populaire basé sur Unix qui fonctionne sur presque tous les systèmes Unix ainsi que sur Microsoft Windows.

Ubuntu utilise unzip pour extraire des fichiers d’un fichier ZIP.

Ubuntu utilise socat, un utilitaire basé sur la ligne de commande pour ouvrir des connexions entre deux applications différentes tout en utilisant les flux ou fichiers d’entrée et de sortie standard.

Exemple de sortie :

Installe les dépendances

Installer le serveur LEMP

Le CMS Craft est écrit en PHP et utilise MySQL/MariaDB comme moteur de base de données. Nous allons configurer Ubuntu pour l’utiliser ensemble en utilisant « une pile LEMP ». Une pile LEMP est l’acronyme de Linux, serveur web Nginx, moteur de base de données MySQL/MariaDB et langage de programmation PHP.

Tout d’abord, installe le serveur Nginx et MariaDB en exécutant la commande suivante dans ton terminal :

sudo apt-get install nginx mariadb-server -y

Exemple de sortie :

Installe Nginx

Une fois que les deux sont installés, tu peux installer PHP en exécutant la commande suivante dans ton terminal :

sudo apt-get install php php-cli php-fpm php-common php-curl php-gd php-imagick php-json php-mbstring php-mysql php-pgsql php-zip php-intl php-xml -y

php-cli est l’interface de ligne de commande pour PHP, et le nom du paquetage par défaut était « php5 » dans le passé. Il a maintenant été renommé « php ».

php-fpm est la version -wait de php-cgi. Il peut bien gérer les demandes simultanées et il est utile de l’utiliser derrière un serveur proxy.

php-common est destiné aux bibliothèques communes nécessaires à d’autres modules, par exemple, php-json est automatiquement installé lorsque nous installons « php ».

php-curl est un module permettant d’accéder aux URL via cURL (outil en ligne de commande qui envoie des requêtes HTTP).

Remarque: Ubuntu utilise le Centre de logiciels Ubuntu pour installer les logiciels Ubuntu. Cependant, le Centre de logiciels Ubuntu ne peut pas télécharger ou installer des logiciels tiers comme certains paquets Python (virtualenv, etc.) requis par Craft CMS. Dans le Centre de logiciels Ubuntu, tu dois copier et coller manuellement les commandes trouvées ici dans une fenêtre de Terminal et suivre les instructions.

Après avoir installé tous les paquets, modifie le fichier php.ini dans le répertoire etc/php/7.4/fpm d’Ubuntu :

sudo nano /etc/php/7.4/fpm/php.ini

Change les configurations suivantes dans le fichier :

memory_limit = 512M
post_max_size = 32M
upload_max_filesize = 32M
date.timezone = Asia/Kolkata

memory_limit = 512M est nécessaire pour Craft CMS, dans Ubuntu 20.04 LTS , PHP ne peut pas modifier la limite de mémoire par lui-même, nous devons donc la modifier manuellement dans le fichier php.ini.

post_max_size = 32M et upload_max_filesize = 32M sont nécessaires pour télécharger des fichiers image via le CMS, Ubuntu 20.04 LTS a défini les valeurs post_max_size et upload_max_filesize à 16M par défaut dans le fichier php.ini d’Ubuntu, Craft CMS a besoin de 32M.

Craft CMS a également besoin de date.timezone = Asia/Kolkata pour afficher l’heure correctement dans Ubuntu 20.04 LTS. Ubuntu 20.04 LTS utilise UTC-5 comme fuseau horaire par défaut, Craft CMS requiert un fuseau horaire en UTC+05:30 (heure normale de l’Inde).

Après avoir modifié le fichier php.ini, enregistre et ferme le fichier puis redémarre le service PHP-FPM d’Ubuntu :

sudo systemctl restart php7.4-fpm

Pour vérifier l’état du service PHP-FPM d’Ubuntu, entre la commande ci-dessous :

sudo systemctl status php7.4-fpm

Exemple de sortie :

Vérifie le statut de PHP

Maintenant que le serveur LEMP est prêt, nous allons passer à l’étape suivante.

Création de la base de données

Nous allons maintenant créer une base de données pour Craft CMS. Ouvre la console MySQL d’Ubuntu :

sudo mysql -u root -p

-p signifie mot de passe. Si tu veux te connecter par l’utilisateur root, écris simplement -u root et appuie sur Entrée sans taper d’autres informations spécifiques.

Saisis le mot de passe que tu as défini lors de l’installation d’Ubuntu. Ensuite, exécute les commandes ci-dessous pour créer une base de données nommée ‘craftdb’ :

CREATE DATABASE craftdb;
GRANT ALL ON craftdb.* TO 'craftuser' IDENTIFIED BY 'mypassword';
FLUSH PRIVILEGES;
EXIT;

Pour utiliser cette base de données, nous devons nous y connecter. Nous avons donc créé un utilisateur nommé ‘craftuser’. Nous utilisons IDENTIFIED BY au lieu de VALUES car nous indiquons à MySQL de n’utiliser que la base de données et pas d’autres données. Remplace le mot mypassword par un mot de passe sécurisé de ton choix.

FLUSH PRIVILEGES sert à supprimer toutes les transactions non engagées dans cette session.

Installation de Craft CMS

Pour installer Craft CMS, nous devons d’abord installer la dernière version de Composer. Parce qu’Ubuntu ne prend pas en charge l’utilisation de gem dans son système. Nous ne pouvons installer Craft CMS qu’en utilisant Composer. Exécute la commande ci-dessous pour installer Composer :

sudo curl -sS https://getcomposer.org/installer -o composer-setup.php

-s active le mode silencieux. Par défaut, curl n’affiche pas de sortie au fur et à mesure qu’il avance. Avec -s, tu peux passer une url à analyser. Dans ce cas, nous disons à curl de récupérer l’URL https://getcomposre le -s, nous ajoutons le drapeau pour télécharger un fichier (qui est https://getcomposer.org/installer) et enregistrer l’URL, le drapeau -o dit à curl d’écrire le fichier téléchargé dans composer-setup.php

Ensuite, installe le Composer en exécutant la commande ci-dessous :

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

La commande php est nécessaire pour indiquer à l’ordinateur que tu veux exécuter ce script PHP sudo composer-setup.php –install-dir=/usr/local/bin –filename=composer

Le install-dir est le chemin de destination du Composer. Dans ce cas, c’est /usr/local/bin. Si tu ne veux pas que le fichier soit accessible à tous les utilisateurs, utilise ./ ou ./. De plus, ce répertoire doit avoir des droits d’exécution.

Le drapeau –filename est le nom du fichier sous lequel Composer sera installé.

Si tu ne sais pas où le placer, tu peux copier le fichier dans le répertoire de ton choix ou le spécifier après –filename.

Une fois que le Composer est installé, vérifie la version installée à l’aide de la commande ci-dessous :

composer --version

Exemple de sortie :

Vérifie la version du compositeur

Ensuite, crée un répertoire pour ton projet Craft CMS. Nous créons un répertoire nommé craft sous le répertoire /var/www/html/. Nous utiliserons ce répertoire comme racine de notre site Web. Autrement dit, tous les fichiers que nous créons ou les pages qui sont servies par Craft CMS seront accessibles à partir de la racine web.

mkdir /var/www/html/craft

Ensuite, va dans le répertoire craft et installe le Craft CMS à l’aide de Composer :

cd /var/www/html/craft
composer create-project craftcms/craft

Remarque: Si tu utilises une version de Craft inférieure à 0.97, remplace create-project par install.

Waring: Cela va écraser tous les fichiers existants dans le répertoire.

Si tu veux avoir un répertoire différent pour ton CMS Craft, tu peux spécifier l’option –prefer-dist.

Si tes hébergeurs ne permettent pas de changer la racine du document en /var/www, il est fortement recommandé d’installer Craft dans un sous-répertoire du webroot comme suit : mkdir craft et exécuter composer create-project craftcms/craft craft.

Exemple de résultat :

Installer craft cms à l'aide de composer

Il te sera demandé de fournir les détails de la base de données, un nom d’utilisateur et un mot de passe pour l’administration.

Tu dois fournir des identifiants d’utilisateur pour la base de données MYSQL afin que Craft puisse configurer ses clés de sécurité internes ! Le nom d’hôte est ‘localhost’, le nom d’utilisateur est ‘craftuser’ et le mot de passe est celui que tu as choisi au moment où tu as créé la base de données MySQL ci-dessus.

À ce stade, Composer devrait être capable de compiler et d’installer Craft dans un répertoire appelé craft à l’intérieur de ta structure webroot /var/www. Par défaut, il n’est pas accessible sur Internet, sauf si tu as activé l’accès HTTP.

Ensuite, définis la propriété appropriée pour le répertoire Craft nouvellement installé :

chown -R www-data:www-data /var/www/html/craft

Configuration de Nginx

Nginx est utilisé pour servir les demandes des clients qui lui sont directement adressées. Il offre quelques avantages supplémentaires comme le fait de servir très bien les fichiers statiques, de mettre les pages en cache et de compresser ces pages avec gzip.

sudo nano /etc/nginx/conf.d/craft.conf

Remplis le fichier avec les lignes suivantes :

server {
listen 80;
server_name craft.example.com;
root /var/www/html/craft/web;
index index.php;
location / {
  try_files $uri/index.html $uri $uri/ /index.php?$query_string;
  }
location ~ [^/]\.php(/|$) {
 try_files $uri $uri/ /index.php?$query_string;
 fastcgi_split_path_info ^(.+\.php)(/.+)$;
 fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
 fastcgi_index index.php;
 include fastcgi_params;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 fastcgi_param PATH_INFO $fastcgi_path_info;
 fastcgi_param HTTP_PROXY "";
}
}

Nom du serveur : C’est le nom de domaine ou l’adresse IP de ton serveur, les clients l’utiliseront pour déterminer à qui ils doivent demander des fichiers (dans notre cas, c’est craft.example.com).

Racine des documents : C’est là que résident les actifs de base de Craft CMS, y compris les dossiers web et core qui se trouvent sous /var/www/html/craft. Le chemin que tu vois ici peut être différent, selon la version de craft que tu utilises ou si la structure des dossiers a été modifiée.

Try_files $uri $uri/$uri : Pour toute requête vers une URI relative comme http:// craft.example.com/index.php, elle renverra le fichier index.php qui se trouve généralement à la racine du document de ton installation craft.

Emplacement ~ [^/]\.php(/|$) : L’expression rationnelle pour les fichiers PHP signifie essentiellement qu’il faut rechercher toute requête qui se termine par un .php ou qui correspond à tout sauf / et $ (la recherche est récursive).

Emplacement du socket PHP-FPM : Ceci est utilisé par les demandes de ressources centrales de Craft CMS, cette valeur doit correspondre au nom de ton fichier de socket php-fpm dans ton fichier de configuration principal /etc/php/7.4{5,6}-fpm.conf.

Enregistre et ferme le fichier puis vérifie qu’il fonctionne en l’exécutant :

sudo nginx -t

Exemple de résultat :

Vérifie la configuration de nginx

S’il n’y a pas d’erreurs, tu peux redémarrer Nginx avec la commande ci-dessous :

sudo systemctl reload nginx

Accéder à Craft CMS

Maintenant que les fichiers sont configurés, nous pouvons accéder à notre installation Craft CMS. Dirige ton navigateur vers http://craft.example.com et tu devrais voir l’écran de bienvenue :

Clique sur ‘aller à ton panneau de contrôle’, remplis les détails de ton administrateur et clique sur ‘connexion’. Tu devrais voir le tableau de bord par défaut.

Si tu as rencontré un message indiquant « 503 Unavailable » comme celui-ci :

Assure-toi que tu as les dernières mises à jour de Craft, du thème Craft et du plugin Craft. Si cela ne t’aide pas, essaie les étapes suivantes : assure-toi que les permissions des dossiers de Craft sont correctes, comme décrit dans cet article. Ces fichiers doivent appartenir à root et craft ne doit pas avoir de droits d’écriture sur aucun de ses dossiers.

Conclusion

Félicitations ! Tu as maintenant installé CraftCMS avec succès sur Ubuntu 20.04. Allons créer quelques sites Web ! Comme toujours, n’hésite pas à laisser des commentaires ou des suggestions ci-dessous.

Vous aimerez aussi...