Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révisionLes deux révisions suivantes | ||
technique:gravmultisite [2018/02/13 00:19] – ancienne révision (2018/02/12 21:09) restaurée francoisa | technique:gravmultisite [2020/04/11 02:26] – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Blog en mode multi-sites ====== | ||
+ | |||
+ | FIXME Documentation en cours de rédaction, en cours de tests | ||
+ | |||
+ | L' | ||
+ | |||
+ | Test avec le **CMS Grav** : [[https:// | ||
+ | |||
+ | ===== Côté serveur ===== | ||
+ | |||
+ | Installation d'un serveur web sur Ubuntu 16.04 avec les modules requis : | ||
+ | |||
+ | < | ||
+ | oIWIKIo | ||
+ | apt install nginx php-fpm php-mbstring php-cli php-opcache php-xml php-zip php-gd php-curl php-apcu php-yaml | ||
+ | </ | ||
+ | |||
+ | Récupération de l' | ||
+ | On récupére ce qu'on veut sur le serveur et on l' | ||
+ | |||
+ | < | ||
+ | oIWIKIo | ||
+ | wget https:// | ||
+ | mv latest grav admin-v1.2.3.zip | ||
+ | unzip grav-admin-v1.3.8.zip | ||
+ | mv grav-admin grav | ||
+ | </ | ||
+ | |||
+ | Il faut s' | ||
+ | |||
+ | < | ||
+ | cd / | ||
+ | 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 | ||
+ | </ | ||
+ | |||
+ | ==== Modification du Virtualhost ==== | ||
+ | |||
+ | Grav est sympa et nous propose des [[https:// | ||
+ | |||
+ | J'ai prix [[https:// | ||
+ | |||
+ | Ici, j'ai copié/ | ||
+ | |||
+ | < | ||
+ | oIWIKIo | ||
+ | ln -s / | ||
+ | </ | ||
+ | |||
+ | J'ai modifié les valeurs suivantes du fichier de config grav : | ||
+ | |||
+ | < | ||
+ | root / | ||
+ | server_name grav; | ||
+ | </ | ||
+ | |||
+ | Et relancé la config de nginx | ||
+ | |||
+ | < | ||
+ | nginx -s reload | ||
+ | </ | ||
+ | |||
+ | On choisit un port utilisé (ex : 7000) pour le site et on l' | ||
+ | |||
+ | < | ||
+ | ufw allow 7000 | ||
+ | </ | ||
+ | |||
+ | Pour finir, **pour tester**, on lance sur le serveur, la commande de lancement de grav : | ||
+ | < | ||
+ | php -S radios.cemea.org: | ||
+ | </ | ||
+ | |||
+ | Et on se loggue sur l' | ||
+ | |||
+ | Et ça marche ! On a là un beau site statique qu'on peut modifier à la main depuis le serveur. | ||
+ | |||
+ | Pour rendre l' | ||
+ | |||
+ | < | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | ==== 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) : | ||
+ | |||
+ | < | ||
+ | bin/gpm version -f | ||
+ | bin/gpm selfupgrade | ||
+ | bin/gpm install admin | ||
+ | </ | ||
+ | |||
+ | On réactualise la page du site [[http:// | ||
+ | |||
+ | On crée le compte admin et hop, on se retrouve sur l' | ||
+ | |||
+ | Par contre, il faut maintenant s' | ||
+ | |||
+ | ==== La configuration multi-sites ==== | ||
+ | |||
+ | La doc détaillée [[https:// | ||
+ | |||
+ | Deux options possibles : soit on décide d' | ||
+ | |||
+ | Dans le dossier **grav/ | ||
+ | < | ||
+ | mkdir / | ||
+ | </ | ||
+ | |||
+ | Pour chaque site, il faudra créer un dossier dans sites (ex: **test**), qui contiendra 4 dossiers vides : **config pages plugins themes** | ||
+ | < | ||
+ | cd / | ||
+ | mkdir test && cd test | ||
+ | mkdir config pages plugins themes | ||
+ | </ | ||
+ | |||
+ | 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, | ||
+ | |||
+ | < | ||
+ | <?php | ||
+ | /** | ||
+ | * Multisite setup for sub-directories or path based | ||
+ | * URLs for subsites. | ||
+ | * | ||
+ | * DO NOT EDIT UNLESS YOU KNOW WHAT YOU ARE DOING! | ||
+ | */ | ||
+ | |||
+ | /** | ||
+ | Code corrigé par Romain : | ||
+ | Au lieu de : | ||
+ | use GravCommonFilesystemFolder; | ||
+ | // Get relative path from Grav root. | ||
+ | $path = isset($_SERVER[' | ||
+ | ? $_SERVER[' | ||
+ | : Folder:: | ||
+ | */ | ||
+ | /** Remplacer par */ | ||
+ | use Grav\Common\Filesystem\Folder; | ||
+ | |||
+ | // Get relative path from Grav root. | ||
+ | // $path = isset($_SERVER[' | ||
+ | // ? $_SERVER[' | ||
+ | // : Folder:: | ||
+ | |||
+ | // FIX: nginx bug Romain ? | ||
+ | $path = $_SERVER[' | ||
+ | |||
+ | // Extract name of subsite from path | ||
+ | $name = Folder:: | ||
+ | $folder = " | ||
+ | $prefix = "/ | ||
+ | |||
+ | if (!$name || !is_dir(ROOT_DIR . " | ||
+ | return []; | ||
+ | } | ||
+ | |||
+ | //Extract name of subsite from path\ $name = Folder:: | ||
+ | return []; | ||
+ | } // Prefix all pages with the name of the subsite | ||
+ | $container[' | ||
+ | |||
+ | return [ | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | '' | ||
+ | ] | ||
+ | ] | ||
+ | ] | ||
+ | ] | ||
+ | ]; | ||
+ | </ | ||
+ | |||
+ | Commandes utiles dans grav/ | ||
+ | |||
+ | < | ||
+ | bin/gpm list # liste les commandes | ||
+ | bin/gpm update # met à jour le site | ||
+ | bin/gpm selfupgrade -f #m<font inherit/ | ||
+ | bin/gpm install nomduplugin # instalaltion d'un plugin | ||
+ | bin/gpm install admin # | ||
+ | bin/grav list #list les commandes | ||
+ | bin/grav new-project dossier/ | ||
+ | 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 | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | bin/plugin login newuser -u joeuser -e joeuser@grav.org -P b -N "Joe User" -t "Site Administrator" | ||
+ | </ | ||
+ | |||
+ | === Mise à jour sur serveur de Prod === | ||
+ | |||
+ | < | ||
+ | cd / | ||
+ | sudo -u radios / | ||
+ | sudo -u radios / | ||
+ | </ | ||
+ | |||
+ | ===== ===== | ||
+ | |||
===== Côté client ===== | ===== Côté client ===== | ||