Ce document à pour objectifs de décrire les opérations nécessaires pour réussir en douceur le changement d'emplacement d'une zone de linux-france.org et de donner quelques conseils.
Un bon exemple valant mieux qui long discours, je m'appuie sur le changement d'emplacement de la rubrique Macintosh pour écrire ce document.
Sur le site www.linux-france.org, la rubrique Macintosh occupait l'emplacement wlfo/article/materiel/mac. Il a été décidé fin janvier 2002 de la déplacer à wlfo/macintosh.
Les fichiers présents dans cette rubrique sont en html pur ou sont des binaires à télécharger.
Dans les fichiers html, tous les liens internes à wlfo sont des liens relatifs.
Les fichiers présents sur ma zone privée, et donc sur la zone publique, sont une copie des fichiers qui se trouvent sur ma machine. Il sont transférés sur tuxinette au moyen de rsync et ssh, selon la procédure connue des responsables de rubrique.
L'organisation sur ma machine est la suivante :
Ce répertoire contient les fichiers qui seront recopiés sur ma zone privée de tuxinette. Il contient également les fichiers niouzes*.html, niouzes.xml, quefaisje.html et les fichiers demenagement.php et demenagement.html qui permettent de réaliser la redirection de l'ancien emplacement vers le nouveau..
L'organisation sur ma machine ne correspond donc pas à celle de ma zone privée. En effet celle-ci est la suivante :
Ce découpage correspond à la période transitoire où dans l'ancien emplacement on trouve les fichiers de redirection. A terme, il ne restera plus que ~eherlent/html/macintosh et ~eherlent/ftp/macintosh. Avant de transférer mes fichiers sur ma zone privée de wlfo, je passe donc par une étape qui consiste à recopier les fichiers et répertoires de ~/web/lxf-mac/resu/ dans un emplacement temporaire, à savoir ~/tmp/wlfo. Dans ce répertoire temporaire, je crée la hiérarchie de répertoires de ma zone privée de tuxinette, à partir des niveaux html et ftp. Ces opérations sont réalisées par un script de transfert écrit en bash et que l'on trouvera en annexe. Ce script traite aussi les exceptions, à savoir le placement correct des fichiers niouzes*.html, niouzes.xml, quefaisje.html, et maintenant les fichiers de redirection de l'ancienne zone vers la nouvelle.
C'est de l'incrémental doux. Aucun problème majeur ne devrait arriver.
Cette étape a consisté à adapter les liens relatifs internes à wlfo. Les liens internes à la rubrique Macintosh n'ont pas été touchés puisque l'organisation de la rubrique n'a pas changé. Ce sont les liens vers d'autres rubriques qui ont dû être modifiés. Par exemple, dans le fichier netatalk/index.html, il y a un lien relatif vers wlfo/article/cesar/. Celui-ci était "../../cesar/". Il est devenu "../../article/cesar/".
La redirection de article/materiel/mac/ vers macintosh/ a été réalisée au moyen de deux fichiers : index.html et index.php. Sur le site principal, c'est le fichier index.php qui est privilégié. C'est-à-dire que lorsque l'on tape http://www.linux-france.org/article.materiel/mac/ dans son navigateur, le serveur web de wlfo recherche dans ce répertoire des fichiers index.*, et index.php est recherché avant index.html. La présence de ces deux fichiers est nécessaire car on n'est pas assuré que PHP est utilisable sur les miroirs de wlfo. En html, c'est une balise meta qui indique au navigateur qu'il y a une redirection. Cette balise n'est malheureusement pas interprétée par tous les navigateurs, en particulier elle n'est pas interprétée par lynx. L'intérêt du script en PHP est qu'il produit un code retour http 302 du coté du client. Ce code devrait être interprété par les utilitaires de vérification de liens et par les moteurs de recherche. On trouvera les listings de ces fichiers en annexe. Sur ma machine, ces fichiers se nomment demenagement.php et demenagement.html. Il sont renommés en index.php et index.html et mis au bon endroit, c'est-à-dire dans le répertoire html/article/materiel/mac/, par le script de transfert.
Au moment où ce document est rédigé (5/2/02), les étapes 1 à 5 ont été réalisées. Nous en sommes donc à l'étape 6, et je ne sais pas combien de temps elle va durer.
Le 21/03/02, google indique toujours l'ancienne adresse.
Merci à Gilles pour ses conseils.
-- 8< ---- 8< ---- 8< -- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta http-equiv="Refresh" content="5;url=../../../macintosh/"> <meta name="Author" content="Etienne Herlent"> <title>GNU/Linux sur Macintosh a déménagé !</title> </head> <body> <p align="center"> <br> <br> <br> <br> <br> <br> <font size="+3"> <strong>GNU/Linux sur Macintosh a déménagé !</strong> </font> <br> <br> <br> <br> Vous serez redirigé dans 5 secondes. <br> <br> <br> <br> <a href="../../../macintosh/index.html"> Si cela ne se produisait pas, veuillez cliquer ici pour continuer. </a> </p> </body> </html> -- 8< ---- 8< ---- 8< --
-- 8< ---- 8< ---- 8< --
<?php header ("Location: ../../../macintosh/"); exit; ?>
-- 8< ---- 8< ---- 8< --
Ne pas oublier de mettre les droits en exécution sur ce script.
-- 8< ---- 8< ---- 8< -- #!/bin/bash clear xbeep >/dev/null echo "" echo "*** ATTENTION, version transitoire pour le déménagement de la zone ! ***" echo "" echo "" xbeep >/dev/null echo "préparation de la copie locale" cd ~/tmp >/dev/null rm -rf wlfo >/dev/null # cette partie est transitoire mkdir -p wlfo/html/article/materiel/mac >/dev/null # fin de partie transitoire mkdir -p wlfo/html/macintosh >/dev/null mkdir -p wlfo/ftp/macintosh >/dev/null cd wlfo >/dev/null echo "copie locale" cp -padr ~/web/lxf-mac/resu/* html/macintosh >/dev/null # mise en place de la redirection en html et php # cette partie est transitoire if [ -f html/macintosh/demenagement.html ]; then CHEMIN="`pwd`" cd html/article/materiel/mac mv ../../../macintosh/demenagement.html index.html mv ../../../macintosh/demenagement.php index.php cd ../../../macintosh rm -f demenagement.* cd $CHEMIN fi # fin de partie transitoire # replacement des fichiers niouzes # faudra penser à ne plus générer les fichiers niouzes*.html if [ -f html/macintosh/niouzes*.html ]; then echo "copie des fichiers niouzes*.html" cp html/macintosh/niouzes*.html html/. rm -f html/macintosh/niouzes*.html fi if [ -f html/macintosh/niouzes.xml ]; then mv html/macintosh/niouzes.xml html/niouzes.xml >/dev/null fi # replacement du fichier d'auto-présentation if [ -f html/macintosh/quefaisje.html ]; then mv html/macintosh/quefaisje.html html/quefaisje.html >/dev/null fi echo "copie sur wlfo" xbeep >/dev/null # l'option --dry-run sert pour les tests de transfert #rsync --dry-run --perms --recursive --links --verbose --times --stats --delete --delete-excluded --progress --rsh=ssh ./* eherlent@linux-france.org:. rsync --recursive --perms --links --verbose --times --stats --delete --delete-excluded --progress --rsh=ssh ./* eherlent@linux-france.org:. echo "supression des fichiers temporaires" cd ~/tmp >/dev/null rm -rf wlfo >/dev/null echo "transfert terminé" -- 8< ---- 8< ---- 8< --