GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Grav CMS avec Nginx sur Ubuntu 16.04

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 :

  1. Installer Nginx
  2. Installer et configurer PHP-FPM
  3. Installer PHP Composer
  4. Télécharger et installer Grav CMS
  5. Configurer l'hôte virtuel Nginx pour Grav
  6. 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.


Ubuntu
  1. Comment installer WordPress avec Nginx sur Ubuntu 18.04

  2. Comment installer MediaWiki avec Nginx sur Ubuntu 16.04

  3. Comment installer Magento avec Nginx sur Ubuntu 15.10

  4. Comment installer Grav CMS sur Ubuntu 15.04

  5. Comment installer Grav CMS sur Ubuntu 18.04

Comment installer Craft CMS avec Nginx sur Ubuntu 20.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 Nginx sur Ubuntu 15.04

Comment installer Bludit CMS avec NGINX sur Ubuntu 20.04