Comment installer le CMS ExpressionEngine sur CentOS 8

ExpressionEngine est un système de gestion de contenu (CMS) open-source mature, flexible, sécurisé et gratuit écrit en PHP. Son code source est hébergé sur Github. Avec ExpressionEngine, tu peux construire des sites Web complets, créer une application Web ou servir du contenu à des applications mobiles. Tout cela sans avoir besoin de compétences complexes en programmation. Ce guide te guidera à travers le processus d’installation d’ExpressionEngine sur un CentOS 8 frais en utilisant PHP, MariaDB comme base de données et Nginx comme serveur Web.

Exigences

ExpressionEngine nécessite un serveur Web exécutant PHP et MySQL/MariaDB. La pile de logiciels et les versions recommandées sont les suivantes :

  • PHP version 7.0 ou supérieure, fonctionnant avec PHP-FPM et avec les extensions PHP suivantes (gd, fileinfo, intl, mbstring).
  • MySQL version 5.6 ou supérieure ou Percona version 5.6 ou supérieure. Cetutoriel utilisera MariaDB.
  • Un serveur Web comme Nginx ou Apache. Ce tutoriel utilisera Nginx.

Étapes initiales

Vérifie ta version de CentOS :

cat /etc/centos-release
# CentOS Linux release 8.0.1905 (Core)

Configure le fuseau horaire :

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

Mets à jour les paquets (logiciels) de ton système d’exploitation. C’est une première étape importante car elle permet de s’assurer que tu disposes des dernières mises à jour et des derniers correctifs de sécurité pour les paquets logiciels par défaut de ton système d’exploitation :

sudo yum update -y

Installe certains paquets essentiels qui sont nécessaires à l’administration de base du système d’exploitation CentOS :

sudo yum install -y curl wget vim git unzip socat bash-completion epel-release

Étape 1 – Installer PHP

Installe PHP, ainsi que les extensions PHP nécessaires :

sudo yum install -y php-cli php-fpm php-common php-mbstring php-gd php-intl php-mysql php-json php-zip

Vérifie la version de PHP :

php --version
# PHP 7.2.19 (cli) (built: Jun  2 2019 09:49:05) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

Pour afficher PHP compilé en modules, tu peux exécuter :

php -m

ctype
curl
exif
fileinfo
. . .
. . .

Démarre et active le service PHP-FPM :

sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service

Étape 2 – Installer MariaDB

Installe le serveur de base de données MariaDB :

sudo yum install -y mariadb-server

Vérifie la version de MariaDB :

mysql --version
# mysql Ver 15.1 Distrib 10.3.11-MariaDB, for Linux (x86_64) using readline 5.1

Démarre et active le service MariaDB :

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Exécute le script mysql_secure_installation pour améliorer la sécurité de ton installation MariaDB :

sudo mysql_secure_installation

Connecte-toi à MariaDB en tant qu’utilisateur root :

sudo mysql -u root -p
# Enter password:

Crée une nouvelle base de données MariaDB et un nouvel utilisateur de base de données, et mémorise les informations d’identification :

CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
quit

REMARQUE : Remplace dbname et username par des noms appropriés pour ton installation. Remplace password par un mot de passe fort.

Étape 3 – Installe le client Acme.sh et obtiens le certificat Let’s Encrypt (facultatif)

Il n’est pas nécessaire de sécuriser ton site Web avec HTTPS, mais c’est une bonne pratique pour sécuriser le trafic de ton site. Pour obtenir un certificat SSL de Let’s Encrypt, nous allons utiliser le client Acme.sh. Acme.sh est un logiciel shell Unix pur pour obtenir des certificats TLS de Let’s Encrypt sans aucune dépendance.

Télécharge et installe acme.sh :

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~

Vérifie la version d’acme.sh :

acme.sh --version
# v2.8.3

Obtiens des certificats RSA et ECC/ECDSA pour ton domaine/nom d’hôte :

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Si tu veux de faux certificats pour les tester, tu peux ajouter --staging flag to the above commands.

Après avoir exécuté les commandes ci-dessus, tes certificats et tes clés seront en place :

  • Pour RSA: /home/username/example.com directory.
  • Pour ECC/ECDSA: /home/username/example.com_ecc directory.

Pour répertorier tes certs émis, tu peux exécuter :

acme.sh --list

Crée un répertoire pour stocker tes certs. Nous allons utiliser un répertoire /etc/letsencrypt.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Installer/copier les certificats sur /etc/letsencrypt répertoire :

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Tous les certificats seront automatiquement renouvelés tous les 60 jours.

Après avoir obtenu les certs, quitte l'utilisateur root et retourne à l'utilisateur normal sudo :

exit

Étape 4 - Installe Nginx

Installe le serveur web Nginx :

sudo yum install -y nginx

Vérifie la version de Nginx :

nginx -v
# nginx version: nginx/1.12.2

Démarre et active Nginx :

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Configurer Nginx pour ExpressionEngine. Exécute sudo vi /etc/nginx/conf.d/expressionengine.conf et remplis le fichier avec la configuration suivante.

server {

  listen 443 ssl;
  listen 80;
  
  server_name example.com;
  root /var/www/expressionengine;
# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
# ECDSA
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;
index index.php; location / { index index.php; try_files $uri $uri/ @ee; } location @ee { rewrite ^(.*) /index.php?$1 last; } location ~* \.php$ { fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }

Vérifie que la configuration de NGINX ne contient pas d'erreurs de syntaxe :

sudo nginx -t

Recharge le service NGINX :

sudo systemctl reload nginx.service

Étape 5 - Installer ExpressionEngine

Crée un répertoire racine de document dans lequel ExpressionEngine doit résider :

sudo mkdir -p /var/www/expressionengine

Navigue dans le répertoire racine du document :

cd /var/www/expressionengine

Télécharge la dernière version d'ExpressionEngine et décompresse les fichiers dans un dossier sur ton serveur :

sudo wget -O ee.zip --referer https://expressionengine.com/ 'https://expressionengine.com/?ACT=243'
sudo unzip ee.zip
sudo rm ee.zip

Change la propriété du répertoire /var/www/expressionengine pour nginx:

sudo chown -R nginx:nginx /var/www/expressionengine

Exécute sudo vim /etc/php-fpm.d/www.conf et configure l'utilisateur et le groupe à nginx. Initialement, ils seront configurés à apache :

sudo vi /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx

Redémarre le service PHP-FPM :

sudo systemctl restart php-fpm.service

Dirige ton navigateur vers l'URL du fichier admin.php que tu as téléchargé. Par exemple : http://example.com/admin.php. Suis les instructions à l'écran pour installer ExpressionEngine. Une fois que l'assistant d'installation est terminé, tu dois renommer ou supprimer le répertoire system/ee/installer/ de ton serveur.

Étape 6 - Termine l'installation d'ExpressionEngine

Termine l'installation d'ExpressionEngine en entrant les détails de la base de données et du compte administrateur :

Définir les détails de la connexion à la base de données

Après, tu verras la page de connexion par défaut :

Page de connexion

Voici le tableau de bord d'administration d'ExpressionEngine :

Tableau de bord de l'administrateur

Et voici la page du frontend :

Site Web par défaut

C'est tout ! L'installation d'ExpressionEngine est terminée.

Liens

Vous aimerez aussi...