Table des matières

, ,

Logo de Grav

Grav

Grav est un CMS flat file. On entend par là qu'il n'utilise pas de base de données. Le contenu dynamique est stocké sous forme de fichiers YAML.

C'est actuellement un des CMS les plus simples à installer et à utiliser. Il propose une interface claire et moderne. Le site officiel est en anglais, mais l'interface d'administration est traduite en français.

Il propose de nombreuses fonctionnalités, en particulier via son catalogue d'extensions.

Installation

Grav étant une solution destinée à être déployée sur un serveur, toutes les manipulations dont nous traiterons ici se feront en ligne de commande.

Prérequis

Pour installer Grav vous aurez besoin d'un serveur HTTP et de PHP.

Sur un hébergement web géré par l'hébergeur, ces prérequis devraient déjà être en place, donc toutes ces étapes devraient être inutiles.

N'hésitez pas à contacter le support de l'hébergeur si ce n'est pas le cas.

Apache est le serveur HTTP le plus couramment utilisé, c'est celui que nous choisirons ici.

Pour installer Apache et PHP :

sudo apt install apache2 php libapache2-mod-php

Grav requiert ensuite l'activation de certains modules PHP qui ne sont pas installés par défaut sous Ubuntu :

sudo apt install php-curl php-gd php-intl php-json php-mbstring php-xml php-zip

Grav a aussi besoin du module mod_rewrite :

sudo a2enmod rewrite

Nous allons ensuite créer un hôte virtuel pour Grav, dont la racine sera /var/www/grav :

sudo nano /etc/apache2/sites-available/grav.conf

Ce qui ouvre un fichier dans lequel nous allons coller :

grav.conf
<VirtualHost *:80>
        ServerName grav.localhost
        DocumentRoot /var/www/grav
        <Directory /var/www/grav>
                AllowOverride all
                Require all granted
        </Directory>
        ErrorLog /var/log/apache2/error.grav.log
        CustomLog /var/log/apache2/access.grav.log combined
</VirtualHost>

Si un nom de domaine pointe sur le serveur, on l'indique à la place de grav.localhost pour la directive ServerName.
(Ctrl+X puis O pour quitter en sauvegardant)

Finalement, on active l'hôte virtuel et on recharge la configuration d'Apache :

sudo a2ensite grav
sudo systemctl reload apache2
Si votre serveur est sur le Web, pensez à sécuriser l'accès au site en particulier en forçant HTTPS.

Installation de Grav

Tout d'abord téléchargeons la dernière version de Grav :

wget -O grav-admin.zip https://getgrav.org/download/core/grav-admin/latest

Ensuite nous allons extraire le contenu du zip à la racine de notre hôte virtuel (/var/www/grav pour l'exemple) :

sudo unzip grav-admin.zip -d /var/www
sudo mv /var/www/grav-admin /var/www/grav

Attribuons des permissions correctes au fichiers et répertoires. Grav a besoin de droits permissifs afin de faciliter les mises à jours :

sudo chown $USER:www-data /var/www/grav -R
sudo chmod -rwx,u+rwX,g+rwX /var/www/grav -R

Grav devrait alors être accessible à l'adresse http://grav.localhost/

Il reste maintenant à renseigner un nom d'utilisateur, un email et un mot de passe pour l'administrateur du site.

Pour traduire l'interface en français, allez sur la page Configuration, restez sur l'onglet System, descendez jusqu'à Languages puis tapez fr (cliquez sur add fr…) dans le champs Supported.
Cliquez ensuite sur Save en haut à droite. Après actualisation votre interface devrait apparaître en français.

Utilisation

Le site est visible sur http://grav.localhost/, l'interface d'administration est accessible sur http://grav.localhost/admin/.

L'interface est limpide et permet entre autre de parcourir, d'installer et d'activer des thèmes et des plugins.

On peut éditer le contenu des pages depuis l'administration en cliquant sur Pages puis sur la page concernée. Le langage d'édition par défaut est le Markdown. Il est possible de changer cela si ça ne vous convient pas, il existe par ex. un plugin Admin Wysiwyg, mais le Markdown reste généralement la meilleure solution.

On gère l'ordre des éléments des menus par glisser-déposer depuis l'onglet Avancé des pages du même niveau. On structure l'arborescence du site en définissant le paramètre Parent de chaque page.

Les contenus modulaires peuvent être de plusieurs types. Il permettent principalement de diviser une page en plusieurs sections, ce qui rend possible par ex. la création de sites sur une seule page.

Liens utiles


Contributeurs : krodelabestiole