{{tag>serveur internet cms}}
{{ https://upload.wikimedia.org/wikipedia/commons/8/8b/Grav_logo.png?120|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 [[wpfr>YAML|YAML]].
C'est actuellement un des CMS les plus simples à installer et à utiliser. Il propose une interface claire et moderne. [[https://getgrav.org/|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 [[https://getgrav.org/downloads/plugins|catalogue d'extensions]].
[[https://getgrav-grav.netdna-ssl.com/user/pages/03.blog/beta-admin-plugin-available/00-login.png|{{https://getgrav-grav.netdna-ssl.com/user/pages/03.blog/beta-admin-plugin-available/00-login.png?0x200}}]]
[[https://getgrav-grav.netdna-ssl.com/user/pages/03.blog/beta-admin-plugin-available/01-dashboard.png|{{https://getgrav-grav.netdna-ssl.com/user/pages/03.blog/beta-admin-plugin-available/01-dashboard.png?0x200}}]]
[[https://getgrav-grav.netdna-ssl.com/user/pages/03.blog/beta-admin-plugin-available/07-page-edit.png?250|{{https://getgrav-grav.netdna-ssl.com/user/pages/03.blog/beta-admin-plugin-available/07-page-edit.png?0x200}}]]
===== 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 [[:web#serveurs|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.
[[:apache2|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 [[:apache2#mod_rewrite]] :
sudo a2enmod rewrite
Nous allons ensuite créer un [[:apache2#hotes_virtuels|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 :
ServerName grav.localhost
DocumentRoot /var/www/grav
AllowOverride all
Require all granted
ErrorLog /var/log/apache2/error.grav.log
CustomLog /var/log/apache2/access.grav.log combined
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 à [[:apache2#securite|sécuriser]] l'accès au site en particulier en forçant [[:apache2#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 [[:apache2#permissions|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 [[wpfr>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 =====
* [[https://learn.getgrav.org/|Documentation officielle]] - Malheureusement seulement en anglais pour le moment.
* [[:CMS|Autres CMS]]
----
//Contributeurs : [[:utilisateurs:krodelabestiole]]//