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
Dernière révisionLes deux révisions suivantes
technique:gravmultisite [2018/02/12 23:45] – [Le fichier setup.php] francoisatechnique:gravmultisite [2020/05/28 19:07] francoisa
Ligne 10: Ligne 10:
  
 Installation d'un serveur web sur Ubuntu 16.04 avec les modules requis : 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 78: Ligne 86:
  
 Pour rendre l'installation fonctionnelle défintivement, on tue le processus précédent avec Ctrl C et on lance le php officiellement : Pour rendre l'installation fonctionnelle défintivement, on tue le processus précédent avec Ctrl C et on lance le php officiellement :
- 
 <code> <code>
 +
 /etc/init.d/php7.0-fpm start /etc/init.d/php7.0-fpm start
 +
 </code> </code>
  
Ligne 91: Ligne 100:
 bin/gpm selfupgrade bin/gpm selfupgrade
 bin/gpm install admin bin/gpm install admin
 +
 </code> </code>
  
Ligne 98: Ligne 108:
  
 Par contre, il faut maintenant s'attaquer à … Par contre, il faut maintenant s'attaquer à …
- 
  
 ==== La configuration multi-sites ==== ==== La configuration multi-sites ====
Ligne 108: Ligne 117:
 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 116: 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.
  
-===== Créer des utilisateurs =====+==== 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! 
 +*/ 
 + 
 +/** 
 +Code corrigé par Romain : 
 +Au lieu de : 
 +use GravCommonFilesystemFolder; 
 +// Get relative path from Grav root. 
 +$path isset($_SERVER['PATH_INFO']) 
 +   ? $_SERVER['PATH_INFO'
 +   : 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 
 +$name = Folder::shift($path); 
 +$folder = "sites/{$name}"; 
 +$prefix = "/{$name}"; 
 + 
 +if (!$name || !is_dir(ROOT_DIR . "user/{$folder}")) { 
 +    return []; 
 +
 + 
 +//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 #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> <code>
 bin/plugin login newuser -u joeuser -e joeuser@grav.org -P b -N "Joe User" -t "Site Administrator" -p PASSWORD bin/plugin login newuser -u joeuser -e joeuser@grav.org -P b -N "Joe User" -t "Site Administrator" -p PASSWORD
 +
 </code> </code>
-===== Côté client ===== 
  
-Sur l'interface d'admin…+=== Mise à jour sur serveur de Prod ===
  
-A suivre…+<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 136: Ligne 235:
  
 A suivre… A suivre…
 +
  
  • technique/gravmultisite.txt
  • Dernière modification : 2024/04/02 15:08
  • de 127.0.0.1