Les sites distants

Cette page est actuellement non finalisée. Vous ne trouverez donc pas tout son contenu.
Nous sommes désolé pour la gène occasionnée.
Raison(s) :

  1. Page à réviser entièrement


Pour nous aider à compléter la documentation, consulter cette page (Section “wiki”).

:!: Voir les sujets : :!:

Ils permettent d'héberger des images ailleurs que sur le site qui contient Piwigo. Cela peut s'avérer pratique avec des hébergements à taille réduite.
Par contre, les performances de Piwigo ne saurait être “garanties” puisque les images se trouve à l'extérieur du site principal.

Comment ça marche

Le site principal contient entre autres…

piwigo
\-- galleries
    |-- category-1
    |   \-- category-1.1
    |       \-- category-1.1.1
    |           |-- category-1.1.1.1
    |           |   |-- pwg_high
    |           |   |   \-- wedding.jpg
    |           |   |-- thumbnail
    |           |   |   \-- TN-wedding.jpg
    |           |   \-- wedding.jpg
    |           \-- category-1.1.1.2
    \-- category-2
        |-- piglet.gif
        |-- thumbnail
        |   |-- TN-piglet.jpg
        |   \-- TN-video.jpg
        \-- video.avi

Un site distant contiendra uniquement ceci:

remote-gallery-1
|-- remote-category-1
|    \-- remote-category-1.1
|         \-- remote-category-1.1.1
|           |-- remote-category-1.1.1.1
|           |   |-- pwg_high
|           |   |   +-- honeymoon.jpg
|           |   |-- thumbnail
|           |   |   +-- TN-honeymoon.jpg
|           |   \-- honeymoon.jpg
|           \-- remote-category-1.1.1.2
|-- remote-category-2
|   |-- thumbnail
|   |   |-- TN-heffalump.jpg
|   |   \-- TN-pooh.jpg
|   |-- pooh.gif
|   \-- heffalump.avi
\-- create_listing_file.php
\-- create_listing_file_local.inc.php

Le module create_listing_file.php se trouve directement dans le répertoire ./remote-gallery-1
Il provient de votre site principal ./tools/create_listing_file.php

IMPORTANT : Il NE doit SURTOUT PAS être modifié (lire son contenu, copiez également (et modifiez) le fichier create_listing_file_local.inc.php).

L'usage du create_listing_file_local.inc.php n'est possible que depuis Piwigo 2.0.0.

Puis dans l'administration du site principal, l'adresse à donner dans la gestion des site distant sera :

http://www.extend-remote-site.de/remote-gallery-1/

si http://www.extend-remote-site.de est l'adresse de votre hébergement distant.
La version de create_listing_file.php doit être identique à la version de PWG du site principal. A chaque changement de version, pensez à modifier le fichier create_listing_file.php, et à priori vous N'aurez PAS à revoir le contenu de votre create_listing_file_local.inc.php.

Un site distant peut être partagé par plusieurs sites principaux ce qui permet d'afficher les mêmes images dans des galeries différentes (les versions des sites principaux doivent alors évoluer en même temps).

Ensuite, la mise à jour se fait depuis la page d'administration :

  • [ Administration » Catégories » Gestionnaire de sites ]

Cinq options sont disponibles. Pour toute nouvelle mise à jour, il faut utiliser les trois premières dans l'ordre. Explication :

  1. Chaque mise à jour nécessite de recréer le fichier xml. Pour cela : cliquer sur générer la liste.
  2. Ensuite, une fois le fichier xml généré, reste à synchroniser la base de données avec le fichier xml distant. Pour cela : mettre à jour.
  3. Enfin, il est nécessaire de cliquer sur nettoyer, afin de supprimer le fichier xml, pour éviter que n'importe qui puisse lire ce fichier qui contient les adresses de toutes vos photos.
  4. La dernière option ne sert qu'à faire le vide dans la base de données.
  5. La fonction tester ne sert qu'à vérifier le bon paramétrage du site distant.

Votre hébergement du site distant peut interdire l'exécution de create_listing_file.php depuis un site externe alors voir la Gestion manuelle des sites distants.

Si le nombre d'images du site distant est conséquent il est fortement conseillé de lire la page sur la La limitation des sites distants.

A noter : La fonction d'upload par les visiteurs n'est pas disponible sur les catégories physiques des sites distants.

Limitation des sites distants

Depuis PWG v1.7.0, la seule limitation qui reste sur les sites distants est la capacité de la galerie principale à traiter un volume de photos important.

A ce jour, il a été possible de synchroniser un galerie de 8000 photos d'un seul coup.

Principe

Si la galerie principale ne réussit pas la synchronisation d'un site distant pour un problème de max_execution_time, alors la synchronisation doit être divisée en plusieurs étapes :

  1. Synchroniser seulement les répertoires
  2. Synchroniser les répertoires et les fichiers en traitant une catégorie donnée (répéter cette étape pour chaque catégorie)
  3. Synchroniser les métadonnées des fichiers en traitant une catégorie donnée (répéter cette étape pour chaque catégorie)

Méthode plus subtile

Les sites distants qui contiennent beaucoup de photos peuvent poser des problèmes chez certains hébergeurs qui limitent le temps d'exécution des scripts.

Le temps d'exécution d'un script est de 30 secondes par défaut. Il est visible dans le phpinfo de votre hébergeur à la ligne max_execution_time.

Le script de synchronisation 1) réinitialise ce temps d'exécution à 30 secondes pour chaque catégorie scannée (voir la fonction set_time_limit() dans le script). Ce rafraîchissement n'est effectif que si l'hébergeur n'a pas activé le mode SAFE de PHP (chercher safe_mode off dans le phpinfo).

En conclusion, si votre hébergeur à activé le mode safe, alors vous devrez organiser votre site distant d'une autre façon.

Pour reprendre l'exemple précédent :

remote-gallery-1
|-- remote-category-1
|    \-- remote-category-1.1
|         \-- remote-category-1.1.1
|           |-- remote-category-1.1.1.1
|           |   |-- pwg_high
|           |   |   +-- honeymoon.jpg
|           |   |-- thumbnail
|           |   |   +-- TN-honeymoon.jpg
|           |   \-- honeymoon.jpg
|           \-- remote-category-1.1.1.2
|-- remote-category-2
|   |-- thumbnail
|   |   |-- TN-heffalump.jpg
|   |   \-- TN-pooh.jpg
|   |-- pooh.gif
|   \-- heffalump.avi
\-- create_listing_file.php
\-- create_listing_file_local.inc.php

Peut être modifié comme ceci :

remote-gallery-1
|-- remote-category-1
|    +-- remote-category-1.1
|    |    \-- remote-category-1.1.1
|    |      |-- remote-category-1.1.1.1
|    |      |   |-- pwg_high
|    |      |   |   +-- honeymoon.jpg
|    |      |   |-- thumbnail
|    |      |   |   +-- TN-honeymoon.jpg
|    |      |   \-- honeymoon.jpg
|    |      \-- remote-category-1.1.1.2
|    \-- create_listing_file.php
|    \-- create_listing_file_local.inc.php
|-- remote-category-2
|   |-- thumbnail
|   |   |-- TN-heffalump.jpg
|   |   \-- TN-pooh.jpg
|   |-- pooh.gif
|   \-- heffalump.avi
\-- create_listing_file.php
\-- create_listing_file_local.inc.php

Notez que create_listing_file.php et create_listing_file_local.inc.php ont été déplacés et copiés dans les sous-répertoires.

Puis dans l’administration du site principal, l’adresse du site distant qui était :

http://www.extend-remote-site.de/remote-gallery-1/

Sera supprimée et remplacée par 2 sites distants :

http://www.extend-remote-site.de/remote-gallery-1/remote-sub-gallery-1/
http://www.extend-remote-site.de/remote-gallery-1/remote-sub-gallery-2/

Particularités

Chez certains hébergeurs, il faut créer un répertoire “sessions” à la racine de votre site.

C'est le cas chez FREE.

Chez Free

1) Si l'un de vos serveurs est chez Free, il vous faudra obligatoirement créer un dossier “sessions” à la racine de votre site. (CF: Doc Free)
Si les deux sont chez Free, il faut donc reproduire l'opération sur vos deux serveurs.
2) Il est bon de pouvoir protéger ce dossier “sessions” car c'est un dossier sensible au piratage.

  • Pour ce faire, créez un fichier texte sous le nom .htaccess sans extension (sans oublier le point devant le mot).

Les lignes à entrer dans ce fichier sont les suivantes :

    PerlSetVar AuthFile /chemin_du_dossier/fichier_de_mots_de_passe
    AuthName "Acces Restreint"
    AuthType Basic
    require valid-user

Ce fichier est à placer directement dans le dossier à sécuriser “sessions”.

  • Créez un fichier texte contenant le ou les couple(s) d'identifiant(s)/mot(s) de passe, exemple :
    administrateur:super_mot_de_passe
    utilisateur:youpi

Il est possible de placer ce fichier à n'importe quel endroit sur l'espace Web. Une fois que vous avez placé ce fichier, il faut modifier votre .htaccess ci-dessus et à la place de /chemin_du_dossier/fichier_de_mots_de_passe y inscrire le chemin de votre fichier texte. Pour que les dossiers ne soient pas accessibles, créez un autre fichier .htaccess en plaçant deny from all à l'intérieur, ce qui bloquera l'accès au dossier (et aux sous-dossiers) automatiquement.

A noter : Vous pouvez appeler le script create_listing_file.php directement depuis le navigateur afin de voir ce qu'il fait.
Informations issues du sujet: http://fr.piwigo.org/forum/viewtopic.php?pid=93935#p93935

Paramétrage d'un site distant

Les paramètres suivants peuvent être modifiés pour adapter le script create_listing_file_local.inc.php au besoin de l'utilisateur ou au serveur sur lequel il est installé.

Certains paramètres exigent plus de compétences techniques que d'autres pour être manipulés. N'hésitez pas à utiliser le forum pour en discuter.

Paramètres de la galerie

$conf['gallery'] = 'http://www.mon.domaine/ma/galerie';

C'est l'adresse de votre galerie principale. Elle sert à afficher un lien de retour et les images des différent boutons.

$conf['prefix_thumbnail'] = 'TN-';

C'est le préfixe utilisé pour le nom des miniatures.

Il DOIT être identique au préfixe utilisé sur la galerie principale.

Par défaut, Piwigo utilise le préfixe TN-.

$conf['file_ext'] = array('jpg','JPG','jpeg','JPEG','png','PNG','gif','GIF','mpg','zip', 'avi','mp3','ogg');

C'est la liste des extensions de fichier supportées par Piwigo.

Les majuscules/minuscules DOIVENT être respectées. Vous ne listerez pas les fichiers ayant l'extention 'pDf', en ajoutant 'pdf' ou 'PDF'.

$conf['picture_ext'] = array('jpg','JPG','jpeg','JPEG','png','PNG','gif','GIF');

C'est la liste des extensions de fichier d'images supportées par Piwigo.

Cette liste ne DEVRAIT pas être modifiée sans demander conseil.

Paramètres de la limitation de temps

Un serveur web correctement configuré autorise l'exécution d'un script pour un durée déterminée. C'est le paramètre max_execution_time de PHP (Plus d'informations) qui est généralement fixé à 30 secondes.

Si ce serveur est vraiment bien configuré, le mode SAFE est activé. C'est le paramètre safe_mode de PHP (Plus d'informations) qui est généralement fixé à 1 (true).

Dans ce contexte, un script dispose de 30 secondes pour générer le fichier listing.xml avant de planter, ce qui arrivait avec des galeries très importantes en nombre de photos dans les versions de Piwigo antérieures à 1.7.0.

Avec la version 1.7.0 de PWG, le script contourne cette restriction en affichant une page intermédiaire avant le max_execution_time fatidique. Cette page intermédiaire va être rafraîchie (après quelques secondes) jusqu'à ce que le fichier listing.xml soit complet.

$conf['max_execution_time'] = (5*ini_get('max_execution_time'))/6;

C'est le temps maximum entre le début du script et l'affichage de la page intermédiaire.

Par défaut, il est égal à 5/6èmes du temps autorisé par le serveur.

Il ne DEVRAIT pas être modifié sans demander conseil.
Il DEVRAIT être fonction du temps autorisé par le serveur. Il ne DOIT pas être égal à 0.

$conf['refresh_delay'] = 0;

C'est le temps entre l'affichage de la page intermédiaire et son rafraîchissement.

Par défaut, il est égal à 0 secondes.

Paramètres EXIF

Si vous voulez en savoir plus sur l'EXIF : Wikipedia :: EXIF Reportez vous à la documentation interne pour affiner vos réglages : meta

$conf['use_exif'] = false;

Ce paramètre détermine si le script doit extraire les informations EXIF des images listées (true) ou non (false).

Il DOIT être égal à 'true' ou 'false'.

Par défaut, il est égal à false.

$conf['use_exif_mapping'] = array(
  'date_creation' => 'DateTimeOriginal'
  );

Ce paramètre liste les informations EXIF à extraire des images.

Logiquement, vous retrouvez ces informations dans la configuration de site principal.

Paramètres IPTC

Si vous voulez en savoir plus sur l'IPTC : Wikipedia :: IPTC Reportez vous à la documentation interne pour affiner vos réglages : meta

$conf['use_iptc'] = false;

Ce paramètre détermine si le script doit extraire les informations IPTC des images listées (true) ou non (false).

Il DOIT être égal à 'true' ou 'false'.

Par défaut, il est égal à false.

$conf['use_iptc_mapping'] = array(
  'keywords'        => '2#025',
  'date_creation'   => '2#055',
  'author'          => '2#122',
  'name'            => '2#005',
  'comment'         => '2#120'
);

Ce paramètre liste les informations IPTC à extraire des images.

Logiquement, vous retrouvez ces informations dans la configuration de site principal.

Paramètres de protection des répertoires

$conf['protect'] = false;

Ce paramètre détermine si les répertoires listés doivent être protégés automatiquement (true) ou non (false).

Il DOIT être égal à 'true' ou 'false'.

Par défaut il est égal à false.

$conf['protect_content'] = '<?php header("Location: '.$conf['gallery'].'") ?>';

C'est le contenu du fichier index.php, créé dans chaque répertoire listé pour le protéger.

Par défaut il redirige automatiquement les visiteurs à l'adresse indiquée dans les Configurations de la gallerie.

$conf['protect_warnings'] = true;

Ce paramètre détermine si le script affiche un message (true) ou non (false) quand un répertoire est déjà protégé.

Il DOIT être égal à 'true' ou 'false'.

Par défaut il est égal à false.

Paramètres de la génération des miniatures

$conf['thumbnail'] = false;

Ce paramètre détermine si la miniature d'une image doit être générée automatiquement (true) ou non (false) lorsqu'elle n'existe pas.

Il DOIT être égal à 'true' ou 'false'. Le script désactive automatiquement la génération des miniatures si le serveur ne supporte la génération d'image ou si les autres paramètres de configuration sont erronés.

Par défaut la valeur est égale à false.

$conf['thumbnail_method'] = 'ratio';

C'est la méthode employé pour déterminer la taille de la miniature à générer :

  • 'fixed' : la taille de la miniature est fixée par les paramètres thumbnail_width et thumbnail_height.
  • 'width' : la largeur de la miniature est fixée par le paramètre thumbnail_width. La hauteur respectera les proportions largeur/hauteur de l'original.
  • 'height' : la hauteur de la miniature est fixée par le paramètre thumbnail_height. La largeur respectera les proportions largeur/hauteur de l'original.
  • 'ratio' : la largeur/hauteur de la miniature sera égale à la largeur/hauteur de l'original multipliée par thumbnail_ratio.
  • 'exif' : la miniature est extraite directement de l'image qui la contient.
  • Toute autre valeur désactive la génération automatique des miniatures.

Par défaut elle est égale à ratio.

$conf['thumbnail_height'] = 128;

C'est la hauteur en pixels des miniatures.

Si elle est utilisée, elle DOIT être numérique et supérieure à 0. Dans le cas contraire, la génération automatique des miniatures est désactivée.
Elle est OBLIGATOIRE quand la méthode de génération est 'fixed' ou 'height.

Par défaut elle est égale à 128 pixels, comme la hauteur par défaut des miniatures sur une galerie principale.

$conf['thumbnail_width'] = 128;

C'est la largeur en pixels des miniatures.

Si elle est utilisée, elle DOIT être numérique et supérieure à 0. Dans le cas contraire, la génération automatique des miniatures est désactivée.
Elle est OBLIGATOIRE quand la méthode de génération est 'fixed' ou 'width.

Par défaut elle est égale à 128 pixels, comme la largeur par défaut des miniatures sur une galerie principale.

$conf['thumbnail_ratio'] = 0.2;

C'est la proportion entre entre les dimensions de l'image et celles de la miniature.

Si elle est utilisée, elle DOIT être numérique et strictement comprise entre 0 et 1. Dans le cas contraire, la génération automatique des miniatures est désactivée.
Elle est OBLIGATOIRE quand la méthode de génération est 'ratio'.

Par défaut elle est égale à 0.2 (soit 20%).

$conf['thumbnail_format'] = 'jpeg';

C'est à la fois le format d'image de la miniature générée et l'extension de son nom.

Il PEUT avoir les valeurs 'jpeg', 'gif' ou 'png'. Toute autre valeur désactive la génération automatique des miniatures.
Il DOIT être supportée par le serveur. Dans le cas contraire, la génération automatique des miniatures est désactivée.

Par défaut il est égal à jpeg.

Gestion manuelle des sites distants

FIXME: Pas testé sur Piwigo v2. Si quelqu'un se lance dedans, merci de prévenir l'équipe du résultat. Article tiré de http://fr.piwigo.org/doc/doku.php?id=fr:personnalisation:branche_1.5#gestion_manuelle_des_sites_distant

Vincent 2009/09/04 20:19 Je pense que cette partie est complètement obsolète. — end

Pour ceux qui ne peuvent pas exécuter la mise à jour des sites distant directement depuis l'interface d'administration de PWG, il est possible en modifiant un peu le fichier create_listing_file.php d'obtenir un menu lorsque vous exécutez ce fichier directement depuis votre site distant.

Dans create_listing_file.php remplacer vers la ligne 475 :

if (isset($_GET['action']))
{
  $page['action'] = $_GET['action'];
}
else
{
  $page['action'] = 'generate';
}

Par

if (isset($_GET['action']))
{
  $page['action'] = $_GET['action'];
}
else
{
  $page['action'] = '';
}

Ensuite vers la ligne 540 ajouter après :

  case 'clean' :
  {
    if( @unlink('./listing.xml'))
    {
      echo 'PWG-INFO-3 : listing.xml file deleted'."\n";
    }
    else
    {
      echo 'PWG-ERROR-3 : listing.xml does not exist'."\n";
    }
    break;
  }

Ceci :

  default:
   // Menu de lancement pour la mise à jour manuel des sites distant
   echo '<ul>';
   echo '        <li><a href="create_listing_file.php?action=generate">Generate listing.xml</a></li>';
   echo '        <li><a href="create_listing_file.php?action=test">Test</a></li>';
   echo '        <li><a href="create_listing_file.php?action=clean">Clean listing.xml</a></li>';
   echo '</ul>';

Il est possible aussi de télécharger directement le fichier listing.xml depuis le fichier create_listing_file.php en ajoutant après :

      echo 'PWG-INFO-1: listing.xml created in ';
      echo get_elapsed_time($start, get_moment());
      echo "\n";
      echo '<br><a href="http://'.$_SERVER['HTTP_HOST'].$local_folder.'listing.xml">Clic here for download file</a>';

Il ne vous reste plus qu'à exécuter le fichier create_listing_file.php directement depuis votre navigateur, générer le fichier listing.xml, le télécharger sur votre poste puis par FTP le mettre à la racine de votre site principal. Ensuite rendez-vous dans l'interface d'administration de PWG, section Site distant.

FlipFlip

Utilisation d'un site distant

Depuis la galerie principale

Un site distant peut être appelé par la galerie principale depuis la page d'administration des sites distants pour :

  • tester la version du site distant (tester)
  • démarrer la génération du fichier listing.xml (générer le listing)
  • supprimer le fichier listing.xml (nettoyer)

Les autres actions (synchroniser et supprimer) sont des actions de la galerie principale.

Tester permet de vérifier que la version du script distant est la même que celle de la galerie principale.

Générer le listing dirige le navigateur vers le site distant. Vous devrez naviguer sur les pages du site distant pour revenir à l'administration du site (voir ci-dessous).

Nettoyer permet de supprimer le ficher listing.xml du site distant après la synchronisation afin de ne pas laisser d'informations à la disposition des curieux.

Directement sur le site distant

Le script create_listing_file.php qui doit être téléchargé sur le site distant peut être appelé directement depuis le navigateur à l'adresse http://www.mon.domaine/mon/repertoire/create_listing_file.php.

Utilisé directement, ce script peut afficher différentes pages :

  • La page d'accueil
  • La page de test
  • La page intermédiaire (lors d'une génération)
  • La page de synthèse (lors d'une génération)
  • La page de suppression

Page d'accueil

La page d'accueil ne fait que proposer des liens vers :

  • La page de test (Test)
  • La page de suppression (Clean)
  • La page de génération (Listing)
  • Le site PhpWebGallery
  • La page d'administration des sites distants de la galerie principale (icône)

sitedistant_accueil.jpg

Page de test

La page de test affiche les informations suivantes :

  • Version du script
  • Support de la création d'images
    • Version de la librairie de manipulation des images (GD)
    • Format d'image supportés par la librairie
  • Information relative au temps d'exécution du script

Elle propose aussi des liens vers :

  • Le site PhpWebGallery
  • La page d'accueil (icône)

sitedistant_tester.jpg

Page intermédiaire

La page intermédiaire est affichée lorsqu'une des générations de listing est effectuée en plusieurs étapes.

Elle affiche les informations suivantes :

  • Le nombre de répertoires complètement listés
  • Le nombre d'images listées
  • Le nombre de répertoire qu'il reste à lister (ce nombre n'inclue pas les sous répertoires)
  • Le nombre d'images à lister dans le répertoire ou le listing s'est interrompu
  • Le temps écoulé depuis le début de la génération

Elle propose aussi des liens vers :

  • Le site PhpWebGallery
  • L'étape suivante de la génération au cas où le navigateur ne l'autoriserait pas (icône)

sitedistant_generer_intermediaire.jpg

Page de synthèse

La page de synthèse est affichée lorsque la galerie a été complètement scannée par le script.

Elle affiche les informations suivantes :

  • Les messages d'erreur et/ou d'alerte
  • Le nombre total de répertoires parcourus
  • Le nombre total d'images listées
  • La durée totale de génération du listing

Elle propose aussi des liens vers :

  • Le fichier XML généré
  • Le site PhpWebGallery
  • La page d'accueil (icône)

sitedistant_generer_synthese.jpg

Page de suppression

La page de suppression n'affiche que le résultat de la suppression du listing.

Elle propose aussi des liens vers :

  • Le site PhpWebGallery
  • La page d'accueil (icône)

sitedistant_supprimer.jpg

Pour aller plus loin...

1) à partir de la version 1.6.2
 
Haut de page
pwg21/utilisation/fonctionnalites/site_distant.txt · Dernière modification: 2011/02/08 15:40 par gotcha
 
 
github twitter facebook newsletter Faire un don Piwigo.org © 2002-2018 · Contact