technique:gravmultisite

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
technique:gravmultisite [2017/11/27 00:48] – [Installation du plugin admin] lolotechnique:gravmultisite [2024/04/02 15:08] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-====== Blog en mode multi-sites ====== +**Cette page est obsolèteVeuillez accéder au contenu à son nouvel emplacement : [[https://bibliotech.cemea.org/books/outils-technique/page/gravmultisite|gravmultisite]]**
- +
-FIXME Documentation en cours de rédaction, en cours de tests +
- +
-L'intérêt d'utiliser le mode multi-sites est qu'il permet de proposer à plusieurs webmasters différents, des sites qui reposent sur la même base, sans avoir à maintenir plusieurs fois le même code. Le moteur du site est commun, seules les données et la personnalisation du site change. +
- +
-Test avec le **CMS Grav** : [[https://getgrav.org/|https://getgrav.org/]] +
- +
-===== Côté serveur ===== +
- +
-Installation d'un serveur web sur Ubuntu 16.04 avec les modules requis : +
- +
-<code> +
-apt install nginx php-fpm php-mbstring php-cli php-opcache php-xml php-zip php-gd php-curl php-apcu php-yaml +
-</code> +
- +
-Récupération de l'archive de Grav depuis [[https://getgrav.org/downloads/|le site]], soit en mode brut avec 2 possibilités : Grav (un seul site statique modifiable à la main) ou Grav-admin (avec plugin de gestion de contenu), soit avec un [[https://getgrav.org/downloads/skeletons|squelette intégré]] avec le code de grav dedans.\\ +
-On récupére ce qu'on veut sur le serveur et on l'extrait dans le dossier /var/www/html/grav par exemple. +
- +
-<code> +
-wget https://getgrav.org/download/core/grav-admin/latest +
-mv latest grav admin-v1.2.3.zip +
-unzip grav-admin-v1.3.8.zip +
-mv grav-admin grav +
-</code> +
- +
-Il faut s'assurer que les droits sur le dossier grav et ses fichiers sont corrects (644 pour les fichiers, 775 pour les dossiers avec le groupe www-data). Ici avec nginx : +
- +
-<code> +
-cd /var/www/html/grav +
-chgrp -R www-data . +
-find . -type f | xargs chmod 664 +
-find ./bin -type f | xargs chmod 775 +
-find . -type d | xargs chmod 775 +
-find . -type d | xargs chmod +s +
-umask 0002 +
-</code> +
- +
-==== Modification du Virtualhost ==== +
- +
-Grav est sympa et nous propose des [[https://github.com/getgrav/grav/tree/master/webserver-configs|config pour les serveurs web]] qui nous intéressent. +
- +
-J'ai prix [[https://github.com/getgrav/grav/blob/master/webserver-configs/nginx.conf|celui-ci]] pour nginx et renomme en "grav"+
- +
-Ici, j'ai copié/collé le fichier dans /etc/nginx/sites-available/grav avec le lien qui va bien depuis /etc/nginx/sites-enable. +
- +
-<code> +
-ln -s /etc/nginx/sites-available/grav /etc/nginx/sites-enable/ +
-</code> +
- +
-J'ai modifié les valeurs suivantes du fichier de config grav : +
- +
-<code> +
-root /var/www/html/grav; +
-server_name grav; +
-</code> +
- +
-Et relancé la config de nginx +
- +
-<code> +
-nginx -s reload +
-</code> +
- +
-On choisit un port utilisé (ex : 7000) pour le site et on l'ouvre avec son pare-feu : +
- +
-<code> +
-ufw allow 7000 +
-</code> +
- +
-Pour finir, **pour tester**, on lance sur le serveur, la commande de lancement de grav : +
-<code> +
-php -S radios.cemea.org:7000 system/router.php +
-</code> +
- +
-Et on se loggue sur l'adresse du serveur : [[http://radios.cemea.org:7000|http://radios.cemea.org:7000]] +
- +
-Et ça marche ! On a là un beau site statique qu'on peut modifier à la main depuis le serveur. +
- +
-Pour rendre l'installation fonctionnelle défintivement, on tue le processus précédent avec Ctrl C et on lance le php officiellement : +
- +
-<code> +
-/etc/init.d/php7.0-fpm start +
-</code> +
- +
-==== Installation du plugin admin ==== +
- +
-on vérifie la version utilisée, on met à jour et on installe le plugin et on accepte les dépendances (y) : +
- +
-<code> +
-bin/gpm version -f +
-bin/gpm selfupgrade +
-bin/gpm install admin +
-</code> +
- +
-On réactualise la page du site [[http://radio.cemea.org:7000|http://radio.cemea.org:7000]] et on tombe sur une page de création de compte admin. +
- +
-On crée le compte admin et hop, on se retrouve sur l'interface d'admin où on peut faire joujou avec le contenu du site. +
- +
-Par contre, il faut maintenant s'attaquer à … +
- +
- +
-==== La configuration multi-sites ==== +
- +
-La doc détaillée [[https://learn.getgrav.org/advanced/multisite-setup|multisites est ici.]] +
- +
-Deux options possibles : soit on décide d'accéder aux sites en sous-domaines (lolo.webradios.cemea.org) ou en sous-dossiers (webradio.cemea.org/lolo). Ici c'est la seconde option qui est choisie. +
- +
-Dans le dossier **grav/user**, on crée un dossier **sites**. +
-<code> +
-mkdir /var/www/html/grav/user/sites +
-</code> +
- +
-Pour chaque site, il faudra créer un dossier dans sites (ex: **test**), qui contiendra 4 dossiers vides : **config pages plugins themes** +
-<code> +
-cd /var/www/html/grav/user/sites +
-mkdir test && cd test +
-mkdir config pages plugins themes +
-</code> +
- +
-Il suffira de dupliquer ce site pour chaque nouveau compte. +
- +
-==== Le fichier setup.php ==== +
- +
-Il est nécessaire de créer un fichier setup.php qui se trouvera dans le dossier grav et qui sera appelé pour chaque site. Il dépend de la configuration du multi-sites (sous-domaines ou sous-dossiers). +
- +
-Pour les sous-dossiers, il contient ce code-là : +
- +
-<code> +
-<?php +
-/** +
- * Multisite setup for sub-directories or path based +
- * URLs for subsites. +
- * +
- * DO NOT EDIT UNLESS YOU KNOW WHAT YOU ARE DOING! +
- */ +
- +
-use GravCommonFilesystemFolder; +
- +
-// Get relative path from Grav root. +
-$path = isset($_SERVER['PATH_INFO']) +
-   ? $_SERVER['PATH_INFO'+
-   : Folder::getRelativePath($_SERVER['REQUEST_URI'], ROOT_DIR); +
- +
-// Extract name of subsite from path +
-$name = Folder::shift($path); +
-$folder = "sites/{$name}"; +
-$prefix = "/{$name}"; +
- +
-if (!$name || !is_dir(ROOT_DIR . "user/{$folder}")) { +
-    return []; +
-+
- +
-// Prefix all pages with the name of the subsite +
-$container['pages']->base($prefix); +
- +
-return [ +
-    'environment' => $name, +
-    'streams' => [ +
-        'schemes' => [ +
-            'user' => [ +
-               'type' => 'ReadOnlyStream', +
-               'prefixes' => [ +
-                   '' => ["user/{$folder}"], +
-               ] +
-            ] +
-        ] +
-    ] +
-]; +
-</code> +
- +
-Commandes utiles dans grav/ +
- +
-<code> +
-bin/gpm list # liste les commandes +
-bin/gpm update # met à jour le site +
-bin/gpm selfupgrade -f #mise à jour auto +
-bin/gpm install nomduplugin # instalaltion d'un plugin +
-bin/gpm install admin #installation du plugin admin +
-bin/grav list #list les commandes +
-bin/grav new-project dossier/nomprojet +
-bin/grav backup #a faire dans un projet +
-bin/grav clear-cache #vide le cache +
-bin/grav install # met à jour les dépendances +
-bin/plugin admin help #aide sur un plugin +
-</code> +
- +
-===== Côté client ===== +
- +
-Sur l'interface d'admin… +
- +
-A suivre… +
  • technique/gravmultisite.1511740093.txt.gz
  • Dernière modification : 2020/04/11 02:26
  • (modification externe)