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/12 22:07] – [Le fichier setup.php] francoisa | technique:gravmultisite [2018/02/13 00:19] – ancienne révision (2018/02/12 21:09) restaurée francoisa | ||
---|---|---|---|
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 : | ||
- | |||
- | < | ||
- | 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' | ||
- | |||
- | < | ||
- | 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é/ | ||
- | |||
- | < | ||
- | 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:: | ||
- | $folder = " | ||
- | $prefix = "/ | ||
- | |||
- | if (!$name || !is_dir(ROOT_DIR . " | ||
- | 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 #mise à jour auto | ||
- | 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 | ||
- | </ | ||
- | |||
===== Côté client ===== | ===== Côté client ===== | ||