Grav est une application Web moderne qui ne nécessite aucune base de données. Il s'agit d'une plate-forme Web basée sur des fichiers qui est simple, rapide et ne nécessite aucune installation. Grav utilise des technologies modernes, notamment Twig Templating pour la création de modèles, Markdown pour la création de contenu, YAML pour une configuration simple, Parsedown et Doctrine cache pour la couche de performances, etc. L'outil est écrit en PHP et est livré avec le puissant système de gestion des packages qui vous permet de gérer le Système Grav, y compris l'installation et la mise à niveau de Grav lui-même, ainsi que des thèmes et des plugins.
Dans ce tutoriel, je vais vous montrer étape par étape comment installer et configurer Grav CMS sur Ubuntu 16.04. Comme Grav est basé sur une application Web PHP, nous devons installer PHP sur le système, et pour obtenir plus de performances, nous utiliserons PHP-FPM avec le navigateur Web Nginx.
Prérequis
- Ubuntu 16.04
- Privilèges root
Ce que nous allons faire :
- Installer Nginx
- Installer et configurer PHP-FPM
- Installer PHP Composer
- Télécharger et installer Grav CMS
- Configurer l'hôte virtuel Nginx pour Grav
- Test
Étape 1 - Installer le serveur Web Nginx
Dans cette première étape, nous allons installer le serveur Web Nginx à partir du référentiel Ubuntu. Avant de faire cela, nous devons mettre à jour tous les packages et le référentiel à l'aide des commandes apt suivantes.
sudo apt update
sudo apt upgrade
Installez maintenant le serveur Web Nginx.
sudo apt install nginx -y
Une fois l'installation terminée, démarrez le service et activez-le pour qu'il se lance au démarrage du système, ce que vous pouvez faire à l'aide des commandes systemctl suivantes.
systemctl start nginx
systemctl enable nginx
Le serveur Web Nginx a été installé sur Ubuntu 16.04 et s'exécute sur le port HTTP par défaut 80. Vérifiez-le à l'aide de la commande netstat de la manière suivante.
netstat -plntu
Et vous obtiendrez le résultat comme indiqué ci-dessous.
Étape 2 - Installer et configurer PHP-FPM
Nous allons maintenant installer et configurer PHP-FPM pour notre installation Grav. Installez les packages PHP et PHP-FPM (y compris toutes les extensions requises) à l'aide de la commande suivante.
sudo apt install -y php7.0 php7.0-fpm php7.0-cli php7.0-gd php7.0-mbstring php-pear php7.0-curl php7.0-dev php7.0-opcache php7.0-xml php7.0-zip
Nous devons maintenant configurer PHP-FPM.
- Installer des extensions supplémentaires
Ceci est facultatif, mais c'est mieux pour les performances Grav. Nous installerons manuellement des extensions supplémentaires à partir du référentiel d'extensions PHP à l'aide de la commande PECL.
Installez l'extension 'apcu' (pour améliorer les performances du cache) à l'aide de la commande 'pecl' ci-dessous.
sudo pecl install apcu
Créez maintenant une nouvelle configuration d'extension 'apcu.ini' dans le répertoire '/etc/php/7.0/mods-available/'.
sudo vim /etc/php/7.0/mods-available/apcu.ini
Collez-y la configuration suivante.
extension=apcu.so
Enregistrez et quittez.
Ensuite, activez l'extension à l'aide des commandes ci-dessous.
sudo ln -s /etc/php/7.0/mods-available/apcu.ini /etc/php/7.0/fpm/conf.d/20-apcu.ini
sudo ln -s /etc/php/7.0/mods-available/apcu.ini /etc/php/7.0/cli/conf.d/20-apcu.ini
Maintenant, nous allons installer l'extension 'YAML' pour améliorer encore les performances de Grav. Mais avant d'installer l'extension, nous devons installer certains packages à l'aide de la commande apt suivante.
sudo apt install libyaml-dev unzip -y
Ensuite, installez les extensions yaml à l'aide de la commande pecl.
sudo pecl install yaml-2.0.0
Une fois l'installation terminée, créez un nouveau fichier de configuration 'yaml.ini'.
sudo vim /etc/php/7.0/mods-available/yaml.ini
Collez-y la configuration suivante.
extension=yaml.so
Enregistrez et quittez.
Activez maintenant l'extension YAML.
sudo ln -s /etc/php/7.0/mods-available/yaml.ini /etc/php/7.0/fpm/conf.d/20-yaml.ini
sudo ln -s /etc/php/7.0/mods-available/yaml.ini /etc/php/7.0/cli/conf.d/20-yaml.ini
De nouvelles extensions PHP supplémentaires pour Grav ont été ajoutées.
- Configurer le pool PHP-FPM pour Grav
Avant de créer une nouvelle configuration de pool PHP-FPM, nous devons ajouter un nouvel utilisateur nommé "grav" au système, ce que vous pouvez faire à l'aide de la commande useradd.
useradd -m -s /bin/bash grav
passwd grav
Allez maintenant dans le répertoire '/etc/php/7.0/fpm/pool.d' et sauvegardez la configuration par défaut de 'www.conf'.
cd /etc/php/7.0/fpm/pool.d/
mv www.conf www.conf.bak
Ensuite, créez une nouvelle configuration de pool PHP-FPM - 'grav.conf' - pour Grav.
vim grav.conf
Collez-y la configuration suivante.
[grav]
user = grav
group = grav
listen = /run/php/php7.0-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /
Enregistrez et quittez.
Redémarrez le service PHP-FPM et activez-le pour qu'il se lance au démarrage du système.
systemctl restart php7.0-fpm
systemctl enable php7.0-fpm
PHP-FPM s'exécute maintenant sous le fichier 'php7.0-fpm.sock' - vérifiez-le en utilisant la commande netstat de la manière suivante.
netstat -pl | grep php
Et vous devriez obtenir le résultat comme indiqué ci-dessous.
Remarque :
Si vous souhaitez vérifier les extensions apcu et yaml, vous pouvez utiliser les commandes php suivantes.
sudo php -m | grep apcu
sudo php -m | grep yaml
L'installation et la configuration de PHP-FPM sont terminées.
Étape 3 - Installer PHP Composer
Le compositeur est un gestionnaire de packages au niveau de l'application pour PHP. Il est utilisé pour gérer les dépendances PHP.
Installez PHP Composer à l'aide de la commande suivante.
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Une fois l'installation terminée, essayez d'exécuter la commande composer de la manière suivante.
composer --version
Le PHP Composer a été installé.
Étape 4 - Télécharger et installer Grav
Nous allons installer et exécuter l'outil en tant qu'utilisateur 'grav'. L'utilisateur a été créé dans l'une des étapes précédentes.
Tout d'abord, connectez-vous en tant qu'utilisateur 'grav'.
su - grav
Maintenant, créez un nouveau répertoire 'www'.
mkdir -p ~/www
cd ~/www
Téléchargez la dernière version de grav en utilisant wget et ajoutez une extension '.zip' au nom du fichier.
wget https://getgrav.org/download/core/grav/latest
mv latest latest.zip
Extrayez le fichier 'latest.zip' et renommez le répertoire 'grav' en 'html'.
unzip latest.zip
mv grav/ html/
Revenons maintenant aux privilèges root et changez le propriétaire du groupe en "www-data".
exit
cd /home/grav/www
sudo chown -R grav:www-data html/
Grav est maintenant téléchargé et installé par l'utilisateur 'grav' dans le répertoire '/home/grav/www/html'.
Étape 5 - Configurer l'hôte virtuel Grav
Dans cette étape, nous allons configurer l'hôte virtuel Nginx pour Grav. Nous allons créer un nouveau fichier d'hôte virtuel nommé "grav" dans le répertoire "sites-available", puis activer l'hôte virtuel Grav.
Allez dans le répertoire de configuration '/etc/nginx' et créez un nouveau fichier 'grav' en utilisant l'éditeur vim.
cd /etc/nginx
vim sites-available/grav
Collez-y la configuration d'hôte virtuel Grav Nginx suivante.
server {
## Define Index
#listen 80;
index index.html index.php;
## Web root and Domain Name
root /home/grav/www/html;
server_name grav.hakase-labs.co;
## Begin - Index
# for subfolders, simply adjust the rewrite:
# to use `/subfolder/index.php`
location / {
try_files $uri $uri/ /index.php?$query_string;
}
## End - Index
## Begin - PHP-FPM Configuration
location ~ \.php$ {
# Choose either a socket or TCP/IP address
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
# fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
## End - PHP
## Begin - Security
# deny all direct access for these folders
location ~* /(.git|cache|bin|logs|backups)/.*$ { return 403; }
# deny running scripts inside core system folders
location ~* /(system|vendor)/.*\.(txt|xml|md|html|yaml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
# deny running scripts inside user folder
location ~* /user/.*\.(txt|md|yaml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
# deny access to specific files in the root folder
location ~ /(LICENSE|composer.lock|composer.json|nginx.conf|web.config|htaccess.txt|\.htaccess) { return 403; }
## End - Security
}
Enregistrez et quittez.
Ensuite, activez l'hôte virtuel et testez la configuration nginx.
ln -s /etc/nginx/sites-available/grav /etc/nginx/sites-enabled/
nginx -t
Remarque : Assurez-vous de ne recevoir aucune erreur Nginx après avoir testé la configuration.
Redémarrez maintenant les services Nginx et PHP-FPM.
systemctl restart nginx
systemctl restart php7.0-fpm
La configuration de l'hôte virtuel Nginx Grav est terminée.
Étape 6 - Tester
Ouvrez votre navigateur Web et tapez le nom de domaine de votre site Grav, le mien est http://grav.hakase-labs.co/
Et vous obtiendrez la page d'accueil Grav par défaut, comme indiqué ci-dessous.
L'installation de Grav Flat CMS à l'aide de PHP-FPM et du serveur Web Nginx sur Ubuntu 16.04 s'est terminée avec succès.