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
Prochaine révisionLes deux révisions suivantes
technique:gravmultisite [2017/11/26 11:43] – [Côté serveur] francoisatechnique:gravmultisite [2020/04/11 02:26] – modification externe 127.0.0.1
Ligne 9: Ligne 9:
 ===== Côté serveur ===== ===== Côté serveur =====
  
-Installation d'un serveur web sur Ubuntu 16.04 avec les modules recquis :+Installation d'un serveur web sur Ubuntu 16.04 avec les modules requis :
  
 <code> <code>
 +oIWIKIo
 apt install nginx php-fpm php-mbstring php-cli php-opcache php-xml php-zip php-gd php-curl php-apcu php-yaml apt install nginx php-fpm php-mbstring php-cli php-opcache php-xml php-zip php-gd php-curl php-apcu php-yaml
 </code> </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. +Récupération de l'archive de Grav depuis [[https://getgrav.org/downloads/cIWIKIc|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. 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>
 +oIWIKIo
 +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 : 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 :
Ligne 23: Ligne 31:
 <code> <code>
 cd /var/www/html/grav cd /var/www/html/grav
-''chgrp -R www-data .+chgrp -R www-data .
 find . -type f | xargs chmod 664 find . -type f | xargs chmod 664
 find ./bin -type f | xargs chmod 775 find ./bin -type f | xargs chmod 775
 find . -type d | xargs chmod 775 find . -type d | xargs chmod 775
 find . -type d | xargs chmod +s find . -type d | xargs chmod +s
-umask 0002''+umask 0002
 </code> </code>
  
 ==== Modification du Virtualhost ==== ==== 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.+Grav est sympa et nous propose des [[https://github.com/getgrav/grav/tree/master/webserver-configscIWIKIc|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". J'ai prix [[https://github.com/getgrav/grav/blob/master/webserver-configs/nginx.conf|celui-ci]] pour nginx et renomme en "grav".
Ligne 40: Ligne 48:
  
 <code> <code>
 +oIWIKIo
 ln -s /etc/nginx/sites-available/grav /etc/nginx/sites-enable/ ln -s /etc/nginx/sites-available/grav /etc/nginx/sites-enable/
 </code> </code>
Ligne 62: Ligne 71:
 </code> </code>
  
-Pour finir, pour tester, on lance sur le serveur, la commande de lancement de grav : +Pour finir, **pour tester**, on lance sur le serveur, la commande de lancement de grav :
 <code> <code>
 php -S radios.cemea.org:7000 system/router.php php -S radios.cemea.org:7000 system/router.php
 </code> </code>
  
-Et on se loggue sur l'adresse du serveur : [[http://radios.cemea.org:7000|http://radios.cemea.org:7000]]+Et on se loggue sur l'adresse du serveur : [[http://radios.cemea.org:7000cIWIKIc|http://radios.cemea.org:7000]]
  
 Et ça marche ! On a là un beau site statique qu'on peut modifier à la main depuis le serveur. 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 ==== ==== Installation du plugin admin ====
  
-on vérifie la version utilisée, on met à jour eton install le plugin et on accepte les dépendances (y) :+on vérifie la version utilisée, on met à jour et on installe le plugin et on accepte les dépendances (y) :
  
 <code> <code>
Ligne 86: Ligne 100:
 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. 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 à…+Par contre, il faut maintenant s'attaquer à …
  
 ==== La configuration multi-sites ==== ==== La configuration multi-sites ====
Ligne 92: Ligne 106:
 La doc détaillée [[https://learn.getgrav.org/advanced/multisite-setup|multisites est ici.]] 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 site en sous-domains (lolo.webradios.cemea.org) ou en sous-dossiers (webrdio.cemea.org/lolo). Ici c'est la seconde option qui est choisie.+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**. Dans le dossier **grav/user**, on crée un dossier **sites**.
Ligne 108: Ligne 122:
 Il suffira de dupliquer ce site pour chaque nouveau compte. Il suffira de dupliquer ce site pour chaque nouveau compte.
  
-Le fichier setup.php+==== Le fichier setup.php ====
  
-Il est nécessair 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).+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à : Pour les sous-dossiers, il contient ce code-là :
Ligne 117: Ligne 131:
 <?php <?php
 /** /**
- * Multisite setup for sub-directories or path based +* Multisite setup for sub-directories or path based 
- * URLs for subsites. +* URLs for subsites. 
- * +
- * DO NOT EDIT UNLESS YOU KNOW WHAT YOU ARE DOING! +* DO NOT EDIT UNLESS YOU KNOW WHAT YOU ARE DOING! 
- */+*/
  
 +/**
 +Code corrigé par Romain :
 +Au lieu de :
 use GravCommonFilesystemFolder; use GravCommonFilesystemFolder;
- 
 // Get relative path from Grav root. // Get relative path from Grav root.
 $path = isset($_SERVER['PATH_INFO']) $path = isset($_SERVER['PATH_INFO'])
    ? $_SERVER['PATH_INFO']    ? $_SERVER['PATH_INFO']
    : Folder::getRelativePath($_SERVER['REQUEST_URI'], ROOT_DIR);    : Folder::getRelativePath($_SERVER['REQUEST_URI'], ROOT_DIR);
 +*/
 +/** Remplacer par */
 +use Grav\Common\Filesystem\Folder;
 +
 +// Get relative path from Grav root.
 +// $path = isset($_SERVER['PATH_INFO'])
 +//    ? $_SERVER['PATH_INFO']
 +//    : Folder::getRelativePath($_SERVER['REQUEST_URI'], dirname($_SERVER['SCRIPT_NAME']));
 +
 +// FIX: nginx bug Romain ?
 +$path = $_SERVER['REQUEST_URI'];
  
 // Extract name of subsite from path // Extract name of subsite from path
Ligne 139: Ligne 166:
 } }
  
-// Prefix all pages with the name of the subsite +//Extract name of subsite from path\ $name = Folder::shift($path); $folder = "sites/{$name}"; $prefix = "/{$name}"; if (!$name || !is_dir(ROOT_DIR . "user/{$folder}")) { 
-$container['pages']->base($prefix);+return []; 
 +} //  Prefix all pages with the name of the subsite 
 +$container['pages']base($prefix);
  
 return [ return [
-    'environment' => $name, +'environment' ⇒ $name, 
-    'streams' => +'streams' ⇒ 
-        'schemes' => +'schemes' ⇒ 
-            'user' => +'user' ⇒ 
-               'type' => 'ReadOnlyStream', +'type' ⇒ 'ReadOnlyStream', 
-               'prefixes' => +'prefixes' ⇒ 
-                   '' => ["user/{$folder}"], +'' ⇒ ["user/{$folder}"], 
-               +
-            +
-        +
-    ]+]
 ]; ];
 </code> </code>
 +
 +Commandes utiles dans grav/
 +
 +<code>
 +bin/gpm list # liste les commandes
 +bin/gpm update # met à jour le site
 +bin/gpm selfupgrade -f #m<font inherit/inherit;;inherit;;inherit></font>ise à 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>
 +
 +<code>
 +bin/plugin login newuser -u joeuser -e joeuser@grav.org -P b -N "Joe User" -t "Site Administrator" -p PASSWORD
 +</code>
 +
 +=== Mise à jour sur serveur de Prod ===
 +
 +<code>
 +cd /var/www/radios/ && sudo -u radios bin/grav backup
 +sudo -u radios /var/www/radios/bin/gpm selfupgrade # pour MAJ Grav
 +sudo -u radios /var/www/radios/bin/gpm update # pour MAJ Plugins Grav
 +</code>
 +
 +=====   =====
  
 ===== Côté client ===== ===== Côté client =====
  • technique/gravmultisite.txt
  • Dernière modification : 2024/04/02 15:08
  • de 127.0.0.1