GNU/Linux >> Tutoriels Linux >  >> Ubuntu

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 vous permet également de contrôler chaque aspect du développement de votre site.

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

Un système de gestion de contenu (CMS) est un logiciel utilisé pour faciliter la gestion du contenu Web, comme l'édition de contenu ou l'ajout de nouvelles pages et images. L'exploitation d'un site Web peut être difficile si vous devez créer chaque page individuellement dans du code à l'aide de HTML ou d'autres langages de balisage ; cela peut causer des problèmes si plusieurs personnes travaillent sur votre site en même temps, car il se peut qu'il n'y ait pas d'accord sur l'apparence ou le comportement de certains éléments.

L'utilisation d'un CMS 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; puis, lorsque quelqu'un d'autre a besoin de 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 vous montrera comment installer Craft CMS sur votre serveur Ubuntu. Si vous souhaitez utiliser la base de données MySQL/MariaDB, ce guide vous aidera également à l'installer.

Le processus d'installation de Craft CMS sur Ubuntu est similaire quelle que soit la distribution et la version que vous utilisez, vous devriez donc pouvoir suivre ce guide même si votre système est légèrement différent. Ce tutoriel a été créé avec une nouvelle installation d'Ubuntu à l'esprit; cependant, certaines étapes peuvent varier légèrement en fonction de la configuration actuelle de votre serveur.

Prérequis

Pour suivre ce guide, vous aurez besoin de quelques éléments :

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

Mise en route

Mise à jour de votre système

Tout d'abord, connectez-vous à votre 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, vous vous connectez au serveur 'instance_ip' en utilisant le protocole SSH

your_instance_ip est l'adresse IP privée de votre serveur sur lequel Craft CMS sera installé.

Mettez à jour votre système d'exploitation en exécutant la commande ci-dessous : 

sudo apt update && sudo apt upgrade -y

sudo apt update est exécuté pour s'assurer que votre système Ubuntu est à jour. Cette commande obligera Ubuntu à télécharger de nouveaux packages Ubuntu à partir des référentiels Ubuntu et à les installer sur votre système d'exploitation Ubuntu. Ubuntu utilise un référentiel (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 le logiciel Ubuntu. Cela met à niveau votre logiciel Ubuntu, ce qui inclut la mise à jour du noyau Ubuntu, les packages installés et toute nouvelle version du logiciel Ubuntu.

-y est sous la forme abrégée de --yes. La commande Ubuntu 'apt upgrade -y' signifie qu'Ubuntu répondra automatiquement oui à toute demande de mise à jour du logiciel Ubuntu.

Si vous obtenez des erreurs lors de l'exécution de cette commande, vous devrez peut-être corriger les erreurs avec le centre logiciel Ubuntu ou via un terminal. Vous pouvez 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 vous pouvez utiliser la commande Terminal "sudo dpkg --configure -a" pour corriger les erreurs, puis relancer la commande ci-dessus.

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

Exemple de sortie :

Installation des dépendances 

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

sudo apt install -y curl wget vim git unzip socat 

curl permet à Ubuntu de télécharger les mises à jour Ubuntu à partir des référentiels Ubuntu. wget est un logiciel gratuit pris en charge par Ubuntu et d'autres systèmes d'exploitation Linux pour obtenir des fichiers à l'aide des 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 :

Installer le serveur LEMP

Craft CMS 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 un acronyme pour Linux, serveur Web Nginx, moteur de base de données MySQL/MariaDB et langage de programmation PHP.

Tout d'abord, installez le serveur Nginx et MariaDB en exécutant la commande suivante dans votre terminal :

sudo apt-get install nginx mariadb-server -y

Exemple de sortie :

Une fois les deux installés, vous pouvez installer PHP en exécutant la commande suivante dans votre 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 de package par défaut était "php5" dans le passé. Maintenant, il est renommé "php".

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

php-common est destiné aux bibliothèques courantes nécessaires à d'autres modules, par exemple php-json est automatiquement installé lorsque nous installons "php".

php-curl est un module pour accéder à l'URL via cURL (outil en ligne de commande qui envoie des requêtes HTTP).

Remarque :Ubuntu utilise Ubuntu Software Center pour installer le logiciel Ubuntu. Cependant, Ubuntu Software Center ne peut pas télécharger ou installer des logiciels tiers comme certains packages Python (virtualenv, etc.) requis par Craft CMS. Dans Ubuntu Software Center, vous devez 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 packages, modifiez le fichier php.ini dans le répertoire d'Ubuntu etc/php/7.4/fpm :

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

Modifiez 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 requis par Craft CMS, dans Ubuntu 20.04 LTS , PHP ne peut pas modifier le memory_limit par lui-même, nous devons donc le 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 nécessite 32M.

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

Après avoir modifié le fichier php.ini, enregistrez et fermez le fichier puis redémarrez le service PHP-FPM d'Ubuntu :

sudo systemctl restart php7.4-fpm

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

sudo systemctl status php7.4-fpm

Exemple de sortie :

Maintenant que le serveur LEMP est prêt, nous passons à l'étape suivante.

Création de la base de données

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

sudo mysql -u root -p

-p signifie mot de passe. Si vous souhaitez vous connecter en tant qu'utilisateur root, écrivez simplement -u root et appuyez sur Entrée sans saisir aucune autre information spécifique.

Entrez le mot de passe que vous avez défini lors de l'installation d'Ubuntu. Exécutez ensuite 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 disons à MySQL de n'utiliser que la base de données et aucune autre donnée. Remplacez le mot mypassword par un mot de passe sécurisé de votre choix.

FLUSH PRIVILEGES consiste à rejeter toutes les transactions non validées dans cette session.

Installer 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écutez 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 la sortie au fur et à mesure qu'elle longe le -s, vous pouvez passer une URL à analyser. Dans ce cas, nous disons à curl d'obtenir l'URL https://getcomposre le -s, nous ajoutons le drapeau pour télécharger un fichier (qui est https://getcomposer.org/installer) et sauvegardons l'URL, le drapeau -o dit à curl d'écrire le fichier téléchargé dans composer-setup.php

Ensuite, installez 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 dire à l'ordinateur que vous voulez exécuter ce script PHP sudo composer-setup.php --install-dir=/usr/local/bin --filename=composer

Le répertoire d'installation est le chemin de destination de Composer. Dans ce cas, il s'agit de /usr/local/bin. Si vous ne voulez pas que le fichier soit accessible à tous les utilisateurs, utilisez ./ ou ./. De plus, ce répertoire doit avoir des autorisations d'exécution.

L'indicateur --filename est le nom du fichier sous lequel Composer sera installé.

Si vous ne savez pas où le mettre, vous pouvez copier le fichier dans n'importe quel répertoire de votre choix ou le spécifier après --filename

Une fois Composer installé, vérifiez la version installée à l'aide de la commande ci-dessous :

composer --version

Exemple de sortie :

Ensuite, créez un répertoire pour votre 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 Web. Autrement dit, tous les fichiers que nous créons ou les pages servies par Craft CMS seront accessibles à partir de la racine Web.

mkdir /var/www/html/craft

Ensuite, déplacez-vous dans le répertoire craft et installez le CMS Craft à l'aide de Composer :

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

Remarque  :Si vous utilisez une version de Craft inférieure à 0.97, remplacez create-project par install.

Attention  :Cela écrasera tous les fichiers existants dans le répertoire.

Si vous souhaitez avoir un répertoire différent pour votre Craft CMS, vous pouvez spécifier l'option --prefer-dist.

Si vos fournisseurs d'hébergement n'autorisent pas le remplacement de la racine du document par /var/www, il est fortement recommandé d'installer Craft dans un sous-répertoire de la racine Web, par exemple :mkdir craft et d'exécuter composer create-project craftcms/craft craft.

Exemple de sortie :

Il vous 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.

Vous devez fournir des informations d'identification 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 vous avez choisi au moment où vous avez créé la base de données MySQL ci-dessus.

À ce stade, Composer devrait pouvoir compiler et installer Craft dans un répertoire appelé craft à l'intérieur de votre structure webroot /var/www. Par défaut, il n'est pas accessible sur Internet, sauf si vous avez activé l'accès HTTP.

Ensuite, définissez le propriétaire approprié pour le répertoire Craft nouvellement installé :

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

Configuration de Nginx

Nginx est utilisé pour répondre aux demandes des clients qui y accèdent directement. Il offre des avantages supplémentaires tels que le très bon service des fichiers statiques, la mise en cache des pages et la compression gzip de ces pages.

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

Remplissez 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 :Il s'agit du nom de domaine ou de l'adresse IP de votre serveur, les clients l'utiliseront pour déterminer à qui ils doivent demander des fichiers (dans notre cas, il s'agit de craft.example.com).

Racine des documents :c'est là que résident les actifs principaux de Craft CMS, y compris les dossiers Web et principaux qui se trouvent sous /var/www/html/craft. Le chemin que vous voyez ici peut être différent, selon la version de craft que vous utilisez ou si la structure des dossiers a été modifiée.

Try_files $uri $uri/$uri :Pour toute demande à un URI relatif comme http://craft.example.com/index.php, il renverra le fichier index.php qui se trouve généralement à la racine du document de votre installation craft.

Emplacement ~ [^/]\.php(/|$) :L'expression régulière vers les fichiers PHP signifie essentiellement 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 :il est utilisé par les demandes d'actifs principaux de Craft CMS, cette valeur doit correspondre au nom de votre fichier de socket php-fpm dans votre fichier de configuration maître /etc/php/7.4{5,6}-fpm.conf

Enregistrez et fermez le fichier puis vérifiez qu'il fonctionne en exécutant :

sudo nginx -t

Exemple de sortie :

S'il n'y a pas d'erreurs, vous pouvez redémarrer Nginx avec la commande ci-dessous :

sudo systemctl reload nginx

Accéder au CMS Craft

Maintenant que les fichiers sont configurés, nous pouvons accéder à notre installation Craft CMS. Dirigez votre navigateur vers http://craft.example.com et vous devriez voir l'écran de bienvenue :

Cliquez sur 'aller dans votre panneau de contrôle', renseignez les détails de votre administrateur et cliquez sur 'se connecter'. Vous devriez voir le tableau de bord par défaut.

Si vous avez rencontré un message indiquant "503 Non disponible" comme celui-ci :

Assurez-vous de disposer des dernières mises à jour de Craft, du thème Craft et du plugin Craft. Si cela ne vous aide pas, essayez les étapes suivantes :assurez-vous que les autorisations de dossier de Craft sont correctes, comme décrit dans cet article. Ces fichiers doivent appartenir à root et craft ne doit avoir aucune autorisation en écriture sur aucun de ses dossiers.

Conclusion

Félicitations ! Vous avez maintenant installé avec succès CraftCMS sur Ubuntu 20.04. Faisons des sites Web ! Comme toujours, n'hésitez pas à laisser des commentaires ou des suggestions ci-dessous.


Ubuntu
  1. Comment installer WordPress avec Nginx sur Ubuntu 18.04

  2. Comment installer phpMyAdmin avec Nginx sur Ubuntu 18.04

  3. Comment installer MediaWiki avec Nginx sur Ubuntu 16.04

  4. Comment installer Grav CMS avec Nginx sur Ubuntu 16.04

  5. Comment installer SuiteCRM avec Nginx sur Ubuntu 16.04

Comment installer Nginx avec ModSecurity sur Ubuntu 15.04

Comment installer Grav CMS avec Nginx sur Ubuntu 20.04

Comment installer Nextcloud 13 sur Ubuntu 16.04 avec Nginx

Comment installer Craft CMS sur Ubuntu 18.04 LTS

Comment installer Craft CMS sur Ubuntu 20.04 LTS

Comment installer Bludit CMS avec NGINX sur Ubuntu 20.04