Installation du CMS Grav

Installation du CMS Grav

howto admin web

Installation de Grav CMS sur un serveur Web existant et paramétrage de GitSync.

Installation du CMS Grav

Qu'est ce que Grav ?

Grav est un CMS flat file. Flat File O_o ?! Mais encore....

Contrairement à un CMS classique qui repose sur la combinaison base de donnée SQL et PHP, celui n'utilise que des fichiers html qui contiennent toutes les informations (d'ou le nom flat file).

Les avantages sont une performance accrue, une facilité d'installation et de sauvegarde déconcertante.

Grav propose en plus une interface d'administration "à la Wordpress" rendant le tout beaucoup plus user-friendly qu'une solution comme Jekill ainsi qu'une collection de thème de base plutôt intéressante. Le seul inconvénient étant de devoir utiliser PHP, ce qui n'est pas nécessaire avec les autres.

Pré-requis

  1. Un serveur web (type apache, nginx, LiteSpeed...)
  2. PHP 7.1.3 ou supérieur

Et voilà....

Installation

Les étapes suivantes décrive l'installation de ce site, pour plus de détail je vous renvoie à la doc de Grav.

Pour ce site j'ai choisi d'installer le squelette Open Publishing Space, celui-ci correspond exactement à ce que je veux faire et inclus d'office la possibilité de synchroniser votre contenu avec GithHuB, ce qui permet d'avoir à la fois un outils d'archivage et de versioning fort pratique.

Etapes

  1. Se connecter à l'interface de votre serveur en SSH
  2. De rendre dans votre dossier "web" (en général nommé public_HTML)
  3. Télécharger l'archive:
    wget --header 'Host: github-production-release-asset-2e65be.s3.amazonaws.com' --user-agent 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' --header 'Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3' --referer 'https://getgrav.org/downloads/skeletons' --header 'DNT: 1' --header 'Upgrade-Insecure-Requests: 1' --header 'Sec-GPC: 1' 'https://github-production-release-asset-2e65be.s3.amazonaws.com/100427371/7b59cb80-4f5c-11eb-87c4-c3e93469093b?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210109%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210109T155833Z&X-Amz-Expires=300&X-Amz-Signature=7fc879550280f34767ce5cd97e6f23bb9d8e9149d870f6457bd4ae7703dd9813&X-Amz-SignedHeaders=host&actor_id=33554413&key_id=0&repo_id=100427371&response-content-disposition=attachment%3B%20filename%3Dgrav-skeleton-open-publishing-space-site.zip&response-content-type=application%2Foctet-stream' --output-document 'grav-skeleton-open-publishing-space-site.zip'
  4. Décompacter le fichier obtenu
    unzip grav-skeleton-open-publishing-space-site.zip
  5. renommer le dossier
    mv grav-skeleton-open-publishing-space-site grav
  6. Pour plus de sécurité on va régler les droits (remplacer www-data par l'utilisateur)
    chown -R www-data:www-data grav
    cd grav
    find . -type f -exec chmod 644 {} \;
    find . -type d -exec chmod 755 {} \;

    Et voilà!

Bugfix: Actuellement le plugin TNTsearch inclus une petite erreur qui fait que la recherche retourne une page blanche.

Pour résoudre le problème, il suffit d'éditer le fichier user/plugins/tntsearch/tntsearch.php

Et de remplacer la ligne

$this->query = (string)($uri->param('q', null) ?? $uri->query('q') ?: '');

par

$this->query = (string)($uri->param('q', null) ?: $uri->query('q') ?: '');

Paramétrage

Création de l'utilisateur

  1. connectez-vous à votre installation toute neuve:
    https://monnouveausite.org/grav/
  2. Remplissez les informations demandées afin de créer votre profil administrateur.

Paramétrage de GitSync

L'outils GitSync necessite un peu de préparation côté GitHub.

Création du token de connection

L'identifiant par mot de passe étant une méthode déprecié par GitHub nous alons directement utiliser un Token, de plus ça fonctionne mieux avec la double authentification.

  1. Rendez-vous sur votre compte GitHub
  2. Allez dans les paramètre de votre compte (settings)
  3. Ensuite dans la section developer settings puis Personal access tokens
  4. Cliquez sur Generate new token, indiquez un nom et cochez repo (premier ligne) et admin:repo_hook (7eme section)
  5. Cliquez sur Generate token

Ensuite vous devez créer un repo dédié à votre site, afin de faciliter la suite, je vous conseille de nommer la branche principale master.

Paramétrage du plugin

  1. Cliquer sur l'icone Git (à gauche)
  2. Renseigner vos identifiants (Pseudo et Token créé précédemment)
  3. Il ne vous reste plus qu'a suivre l'assistant

Et voila :)

Previous Post