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/26 12:40] – [Côté serveur] francoisatechnique:gravmultisite [2020/05/28 19:07] (Version actuelle) francoisa
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>
 +
 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/|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> <code>
 +
 wget https://getgrav.org/download/core/grav-admin/latest wget https://getgrav.org/download/core/grav-admin/latest
 mv latest grav admin-v1.2.3.zip mv latest grav admin-v1.2.3.zip
 unzip grav-admin-v1.3.8.zip unzip grav-admin-v1.3.8.zip
 mv grav-admin grav mv grav-admin grav
 +
 </code> </code>
  
Ligne 35: Ligne 37:
 find . -type d | xargs chmod +s find . -type d | xargs chmod +s
 umask 0002 umask 0002
 +
 </code> </code>
  
Ligne 44: Ligne 47:
  
 Ici, j'ai copié/collé le fichier dans /etc/nginx/sites-available/grav avec le lien qui va bien depuis /etc/nginx/sites-enable. 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> <code>
 +
 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 54: Ligne 58:
 root /var/www/html/grav; root /var/www/html/grav;
 server_name grav; server_name grav;
 +
 </code> </code>
  
Ligne 60: Ligne 65:
 <code> <code>
 nginx -s reload nginx -s reload
 +
 </code> </code>
  
Ligne 66: Ligne 72:
 <code> <code>
 ufw allow 7000 ufw allow 7000
 +
 </code> </code>
  
Ligne 71: Ligne 78:
 <code> <code>
 php -S radios.cemea.org:7000 system/router.php php -S radios.cemea.org:7000 system/router.php
 +
 </code> </code>
  
Ligne 77: Ligne 85:
 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.
  
-==== Installation du plugin admin ====+Pour rendre l'installation fonctionnelle défintivement, on tue le processus précédent avec Ctrl C et on lance le php officiellement : 
 +<code>
  
-on vérifie la version utilisée, on met à jour eton install le plugin et on accepte les dépendances (y) :+/etc/init.d/php7.0-fpm start
  
-<code> 
-bin/gpm version -f 
-bin/gpm selfupgrade 
-bin/gpm install admin 
 </code> </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 à… 
  
 ==== 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 101: Ligne 100:
 bin/gpm selfupgrade bin/gpm selfupgrade
 bin/gpm install admin bin/gpm install admin
 +
 </code> </code>
  
Ligne 107: Ligne 107:
 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 113: Ligne 113:
 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**.
 <code> <code>
 +
 mkdir /var/www/html/grav/user/sites mkdir /var/www/html/grav/user/sites
 +
 </code> </code>
  
Ligne 125: Ligne 127:
 mkdir test && cd test mkdir test && cd test
 mkdir config pages plugins themes mkdir config pages plugins themes
 +
 </code> </code>
  
 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 138: Ligne 141:
 <?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 160: Ligne 176:
 } }
  
-// 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/ Commandes utiles dans grav/
- 
 <code> <code>
 +
 bin/gpm list # liste les commandes bin/gpm list # liste les commandes
 bin/gpm update # met à jour le site bin/gpm update # met à jour le site
-bin/gpm selfupgrade -f #mise à jour auto+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 nomduplugin # instalaltion d'un plugin
 bin/gpm install admin #installation du plugin admin bin/gpm install admin #installation du plugin admin
Ligne 192: Ligne 211:
 bin/grav install # met à jour les dépendances bin/grav install # met à jour les dépendances
 bin/plugin admin help #aide sur un plugin bin/plugin admin help #aide sur un plugin
 +
 </code> </code>
  
-===== Côté client =====+<code> 
 +bin/plugin login newuser -u joeuser -e joeuser@grav.org -P b -N "Joe User" -t "Site Administrator" -p PASSWORD
  
-Sur l'interface d'admin…+</code>
  
-A suivre…+=== 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 =====
Ligne 205: Ligne 235:
  
 A suivre… A suivre…
 +
  
  • technique/gravmultisite.1511696429.txt.gz
  • Dernière modification : 2020/04/11 02:26
  • (modification externe)