Comment installer Craft CMS sur Fedora 29
Craft est un CMS open source écrit en PHP. Craft te permet de créer et de gérer facilement du contenu de qualité, et de concevoir et construire exactement ce dont tu as besoin. C’est un CMS sécurisé et évolutif avec un grand écosystème de plugins et le code source de Craft est hébergé sur GitHub. Ce tutoriel te guidera à travers la procédure d’installation du CMS Craft sur un système frais Fedora 29 en utilisant Nginx comme serveur Web et nous sécuriserons le site Web avec un certificat SSL Let’s encrypt.
Exigences
Craft requiert les éléments suivants :
- PHP version 7.0 ou supérieure avec les extensions PHP suivantes : (ctype, cURL, GD ou ImageMagick, iconv, JSON, Multibyte String, OpenSSL, PCRE, PDO MySQL Driver ou PDO PostgreSQL Driver, PDO, Reflection, SPL, Zip, Intl, DOM)
- MySQL 5.5+ avec InnoDB, MariaDB 5.5+ ou PostgreSQL 9.5+.
- Au moins 256MB de mémoire allouée à PHP
- Au moins 200MB d’espace disque libre
Conditions préalables
- Un système d’exploitation exécutant Fedora 29.
- Un utilisateur non-root avec des privilèges sudo.
Étapes initiales
Vérifie la version de ton système Fedora :
cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)
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 dnf upgrade -y
Installe certains paquets essentiels qui sont nécessaires à l’administration de base du système d’exploitation Fedora :
sudo dnf install -y curl wget vim git sudo unzip socat bash-completion
Étape 1 – Installer PHP et les extensions PHP requises
Installe PHP, ainsi que les extensions PHP nécessaires :
sudo dnf install -y php-cli php-fpm php-common php-curl php-gd php-pecl-imagick php-json php-mbstring php-mysqlnd php-pgsql php-zip php-intl php-xml php-pdo
Pour afficher PHP compilé dans des modules, tu peux exécuter :
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Vérifie la version de PHP :
php --version
# PHP 7.2.16 (cli) (built: Mar 5 2019 11:05:59) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
Exécutesudo vim /etc/php.ini
et règlememory_limit
sur au moins256MB
:
memory_limit = 256M
Démarre et active le service PHP-FPM :
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
Nous pouvons passer à l'étape suivante, qui est l'installation et la configuration de la base de données.
Étape 2- Installe MariaDB et crée une base de données
Craft CMS prend en charge les bases de données MySQL/MariaDB et PostgreSQL. Dans ce tutoriel, nous utiliserons MariaDB comme serveur de base de données.
Installe le serveur de base de données MariaDB :
sudo dnf install -y mariadb-server
Vérifie la version de MariaDB :
mysql --version
# mysql Ver 15.1 Distrib 10.3.12-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écutemysql_secure installation
scriptpour améliorer la sécurité de MariaDB et définir le mot de passe pour l'utilisateur MariaDBroot
utilisateur :
sudo mysql_secure_installation
Réponds à chacune des questions :
New password: your_secure_password
Re-enter new password: your_secure_password
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Connecte-toi au shell MariaDB en tant qu'utilisateur root :
sudo mysql -u root -p
# Enter password
Crée une base de données MariaDB vide et un utilisateurpour Craft CMS et mémorise les informations d'identification :
mariadb> CREATE DATABASE dbname;
mariadb> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mariadb> FLUSH PRIVILEGES;
Sors de MariaDB :
mariadb> exit
Remplacedbname
,username
etpassword
par tes propres noms.
Étape 3 - Installe le clientacme.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. Afin d'obtenir un certificat TLS de Let's Encrypt, nous utiliserons 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 mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~
Vérifie la version d'Acme.sh :
/etc/letsencrypt/acme.sh --version
# v2.8.0
Obtiens descertificats RSAet ECC/ECDSA pourton domaine/nom d'hôte :
# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength ec-256
Après avoir exécuté les commandes ci-dessus, tescertificatsetclésserontdans :
- Pour RSA :
/etc/letsencrypt/example.com
répertoire. - Pour ECC/ECDSA:
/etc/letsencrypt/example.com_ecc
répertoire.
Étape 4 - Installer et configurer NGINX
Craft CMS peut fonctionner correctement avec de nombreux logiciels de serveur Web populaires. Dans ce tutoriel, nous avons choisi Nginx.
Installe le serveur Web NGINX :
sudo dnf install -y nginx
Vérifie la version de NGINX :
nginx -v
# nginx version: nginx/1.14.2
Démarre et active le service NGINX :
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Configure NGINX pour Craft CMS en exécutant :
sudo vim /etc/nginx/conf.d/craft.conf
Et remplis le fichier avec la configuration suivante :
server {
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
server_name example.com www.example.com;
root /var/www/craft/web;
index index.php;
ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;
location / {
try_files $uri/index.html $uri $uri/ /index.php?$query_string;
}
location ~ [^/]\.php(/|$) {
include default.d/php.conf;
try_files $uri $uri/ /index.php?$query_string;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm/www.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 "";
}
}
Remplace exemple.com par ton propre nom de domaine dans le fichier ci-dessus.
REMARQUE: Pour uneconfiguration Nginx complète et prête pour la production pour Craft, visitehttps://github.com/nystudio107/nginx-craft. La configuration est volontairement simplifiée pour qu'elle reste dense et simple.
Teste la configuration de NGINX :
sudo nginx -t
Recharge NGINX :
sudo systemctl reload nginx.service
Étape 5 - Installer Composer
Installe Composer, le gestionnaire de dépendances PHP de manière globale :
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
Vérifie la version de Composer :
composer --version
# Composer version 1.8.4 2019-02-11 10:52:10
REMARQUE :Les commandes d'installation de Composer changeront à l'avenir, alors consultehttps://getcomposer.org/download/ pour connaître lescommandes les plus récentes si les commandes ci-dessus ne fonctionnent pas.
Étape 6 - Installe Craft CMS
Tu peux télécharger Craft CMS avec Composer ou en téléchargeant manuellement une archive.zip
outar.gz
. Dans ce tutoriel, nous utiliserons Composer pour télécharger Craft CMS.
Crée un répertoire racine de document dans lequel Craft CMS doit résider :
sudo mkdir -p /var/www/craft
Accède au répertoire racine du document :
cd /var/www/craft
Change la propriété du/var/www/craft
répertoire à {votre_nom_d'utilisateur}.
sudo chown -R {your_username}:{your_username} /var/www/craft
Pour créer un nouveau projet Craft, exécute cette commande:
composer create-project craftcms/craft .
Change la propriété du/var/www/craft
répertoire ànginx:
sudo chown -R nginx:nginx /var/www/craft
Exécutesudo vim /etc/php-fpm.d/www.conf
et configurel'utilisateur et le groupe ànginx
. Au départ, ils seront définis surapache:
sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
Créer/var/lib/php/session/
et changer la propriété du répertoire ennginx
.
sudo mkdir -p /var/lib/php/session && sudo chown -R nginx:nginx /var/lib/php/session
Redémarre le service PHP-FPM :
sudo systemctl restart php-fpm.service
Dans ton navigateur Web, va à l'adressehttp://<Hostname>/index.php?p=admin/install
(en remplaçant<Hostname>
par lenom d'hôte de ton serveur Web). Si tu as tout fait correctement jusqu'à présent, tu devrais être accueilli par l'assistant de configuration de Craft.
Étape 7 - Termine l'installation de Craft CMS
Après avoir ouvert ton URL d'installation, la page comme ci-dessous devrait apparaître. Clique sur le bouton"Installer Craft":
Accepte la licence en cliquant sur le bouton"J'ai compris":
Remplis les détails de la base de données et clique sur le bouton"Suivant":
Crée un compte Craft et clique sur le bouton"Suivant":
Configure ton site et clique sur le bouton"Terminer":
Après cela, tu devrais être redirigé vers la page d'administration de Craft :