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, vous pouvez créer des sites Web complets, créer une application Web ou fournir du contenu à des applications mobiles. Le tout sans nécessiter de compétences complexes en programmation. Ce guide vous guidera tout au long du processus d'installation d'ExpressionEngine sur un nouveau CentOS 8 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 et les versions logicielles recommandées sont :
- 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. Ce tutoriel utilisera MariaDB.
- Un serveur Web comme Nginx ou Apache. Ce tutoriel utilisera Nginx.
Étapes initiales
Vérifiez votre version de CentOS :
cat /etc/centos-release
# CentOS Linux release 8.0.1905 (Core)
Configurez le fuseau horaire :
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Mettez à jour les packages de votre système d'exploitation (logiciels). Il s'agit d'une première étape importante car elle garantit que vous disposez des dernières mises à jour et correctifs de sécurité pour les packages logiciels par défaut de votre système d'exploitation :
sudo yum update -y
Installez certains packages essentiels 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
Installez 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érifiez 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, vous pouvez exécuter :
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Démarrez et activez le service PHP-FPM :
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
Étape 2 - Installer MariaDB
Installez le serveur de base de données MariaDB :
sudo yum install -y mariadb-server
Vérifiez la version de MariaDB :
mysql --version
# mysql Ver 15.1 Distrib 10.3.11-MariaDB, for Linux (x86_64) using readline 5.1
Démarrez et activez le service MariaDB :
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Exécutez le mysql_secure_installation
script pour améliorer la sécurité de votre installation MariaDB :
sudo mysql_secure_installation
Connectez-vous à MariaDB en tant qu'utilisateur root :
sudo mysql -u root -p
# Enter password:
Créez une nouvelle base de données MariaDB et un nouvel utilisateur de base de données, et mémorisez les informations d'identification :
CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
quit
REMARQUE : Remplacer dbname
et username
avec des noms appropriés pour votre configuration. Remplacer password
avec un mot de passe fort.
Étape 3 - Installez le client Acme.sh et obtenez le certificat Let's Encrypt (facultatif)
Sécuriser votre site Web avec HTTPS n'est pas nécessaire, mais c'est une bonne pratique pour sécuriser le trafic de votre site. Pour obtenir un certificat SSL de Let's Encrypt, nous utiliserons le client Acme.sh. Acme.sh est un logiciel shell Unix pur permettant d'obtenir des certificats TLS de Let's Encrypt sans aucune dépendance.
Téléchargez et installez 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érifier la version d'acme.sh :
acme.sh --version
# v2.8.3
Obtenir RSA et ECC/ECDSA certificats pour votre 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 vous voulez de faux certificats pour les tests, vous pouvez ajouter l'indicateur --staging flag to the above commands.
Après avoir exécuté les commandes ci-dessus, vos certificats et clés sera dans :
- Pour RSA :répertoire
/home/username/example.com directory.
- Pour ECC/ECDSA :répertoire
/home/username/example.com_ecc directory.
Pour répertorier vos certificats émis, vous pouvez exécuter :
acme.sh --list
Créez un répertoire pour stocker vos certificats. Nous utiliserons un répertoire /etc/letsencrypt.
mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Installez/copiez les certificats dans le répertoire /etc/letsencrypt :
# 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 certificats, quittez l'utilisateur root et revenez à l'utilisateur sudo normal :
exit
Étape 4 - Installer Nginx
Installez le serveur Web Nginx :
sudo yum install -y nginx
Vérifiez la version de Nginx :
nginx -v
# nginx version: nginx/1.12.2
Démarrez et activez Nginx :
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Configurez Nginx pour ExpressionEngine. Exécutez sudo vi /etc/nginx/conf.d/expressionengine.conf
et remplissez 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érifiez la configuration de NGINX pour les erreurs de syntaxe :
sudo nginx -t
Recharger le service NGINX :
sudo systemctl reload nginx.service
Étape 5 - Installer ExpressionEngine
Créez un répertoire racine de document dans lequel ExpressionEngine doit résider :
sudo mkdir -p /var/www/expressionengine
Accédez au dossier racine du document :
cd /var/www/expressionengine
Téléchargez la dernière version d'ExpressionEngine et décompressez les fichiers dans un dossier sur votre serveur :
sudo wget -O ee.zip --referer https://expressionengine.com/ 'https://expressionengine.com/?ACT=243'
sudo unzip ee.zip
sudo rm ee.zip
Changer la propriété de /var/www/expressionengine
répertoire vers nginx:
sudo chown -R nginx:nginx /var/www/expressionengine
Exécutez sudo vim /etc/php-fpm.d/www.conf
et définissez l'utilisateur et le groupe sur nginx
. Initialement, ils seront définis sur apache :
sudo vi /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
Redémarrez le service PHP-FPM :
sudo systemctl restart php-fpm.service
Pointez votre navigateur vers l'URL du admin.php
fichier que vous avez téléchargé. Par exemple :http://example.com/admin.php
. Suivez les instructions à l'écran pour installer ExpressionEngine. Une fois l'assistant d'installation terminé, vous devez renommer ou supprimer le system/ee/installer/
répertoire de votre serveur.
Étape 6 : Terminer la configuration d'ExpressionEngine
Terminez l'installation d'ExpressionEngine en saisissant les détails de la base de données et du compte administrateur :
Après, vous verrez la page de connexion par défaut :
Voici le tableau de bord d'administration d'ExpressionEngine :
Et voici la page d'accueil :
C'est ça! L'installation d'ExpressionEngine est terminée.
Liens
- https://expressionengine.com/
- https://github.com/ExpressionEngine/ExpressionEngine