meta données pour cette page
  •  

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
schplurtziel:liberatator [2012/06/24 10:28]
ztrulphcs [Remerciements]
schplurtziel:liberatator [2020/05/18 10:21] (Version actuelle)
91.171.87.144 Créé depuis le formulaire schplurtziel:liberatator
Ligne 8: Ligne 8:
  
 <note importante> <note importante>
-Noubliez pas de supprimer liberatator.php après usage !+^Versions de Doku et de PHP^ 
 + 
 +À ce jour, 20101/09, La plus récente version de PHP disponible chez free.fr est PHP 5.1.3RC4-dev. à partir de la version 2013-05-10a “Weatherwax”, DokuWiki nécesite au minimum PHP 5.2. **La dernière version de DokuWiki qu'on peut installer chez free.fr est donc 2012-10-13 “Adora Belle”** 
 + 
 +Téléchargement sur %%2012-10-13 “Adora Belle”%% : [[http://download.dokuwiki.org/src/dokuwiki/dokuwiki-2012-10-13.tgz|2012-10-13 “Adora Belle”]].
 </note> </note>
 +
 <note>Pour les //nulls// et pour m'amuser, j'ai fait un [[dokuwiki:tutovid-liberatator|tuto vidéo]] sur l'installation de dokuwiki grâce à liberatator. <note>Pour les //nulls// et pour m'amuser, j'ai fait un [[dokuwiki:tutovid-liberatator|tuto vidéo]] sur l'installation de dokuwiki grâce à liberatator.
 </note> </note>
  
-Voilà, bon dokuwiki+Voilà, bon DokuWiki
  
 ===== Remerciements ===== ===== Remerciements =====
  
-Que soient remerciésici, publiquement, les contributeuses et contributeurs à liberatator, cités par ordre d'apparition dans ma boite mail :+Que soient remerciés ici, publiquement, les contributeuses et contributeurs à liberatator, cités par ordre d'apparition dans ma boite mail : 
 + 
 +  - Damien Gaignon. Signalement du problème avec le greffon [[doku>plugin:translation|translation]] et la fonction [[dokuwiki:dokuwiki-chez-free#fonction_array_fill_keys|array_fill_keys]]; test de la solution.\\ Voir [[http://psolyca.free.fr/|le site web]] de Damien Gaignon. 
 + 
 +===== Ça marche, faites le savoir ===== 
 + 
 +Ben, oui kwoa, prévenez les autres que ça fonctionnne (et faites vous de la pub pour votre site((même si le taux de visite sur ma page est pas des plus fameux...))%%%%) 
 + 
 +<form> 
 +action pagemod _self ca_marche 
 +Thanks "Merci !" 
 +Fieldset "Ça fonctionne pour moi, Merci !" 
 +Textbox  "Nom" /^((?!<\/nowiki>).)*$/
 +select "Version" "2012-09-10 “Adora Belle”|2012-01-25 “Angua”|2011-05-25 “Rincewind”|2010-11-07 “Anteater”|2009-12-25 “Lemming”" 
 +Textbox "Site" "=http://monsite.free.fr/toto" /^http:\/\/[-A-Za-z0-9_+.]*\.free\.fr(\/[-a-zA-Z0-9_.+=?#&\/]*)?$/
 +submit "Faites le savoir" 
 +</form>
  
-  Damien Gaignon. signalement problème avec le greffon [[doku>plugin:translation|translation]], et la fonction [[dokuwiki:dokuwiki-chez-free#fonction_array_fill_keys|array_fill_keys]].+----
  
 +^ Date ^ Nom ^ version ^ site ^
 +|<pagemod ca_marche output_after>
 +| @@meta.date.format.d/m/Y@@  | <nowiki>@@Nom@@</nowiki> | @@Version@@ | @@Site@@  |</pagemod>
 +| 18/05/2020  | <nowiki>MEYER - "version dokuwiki 2018-04-22c "Greebo"</nowiki> | 2012-09-10 “Adora Belle” | http://saraheric.meyer.free.fr/  |
 +| 26/05/2011  | <nowiki>Schplurtz le Déboulonné</nowiki> | 2011-05-25 “Rincewind” | http://schplurtz.free.fr  |
  
 ===== Problèmes corrigés par liberatator ===== ===== Problèmes corrigés par liberatator =====
Ligne 26: Ligne 52:
 Cf [[dokuwiki:dokuwiki-chez-free|Dokuwiki chez free]] Cf [[dokuwiki:dokuwiki-chez-free|Dokuwiki chez free]]
  
-  * version incorrecte de PHP, +  * [[dokuwiki:dokuwiki-chez-free#versions_de_php|version incorrecte]] de PHP, 
-  * sessions PHP non fonctionnelles, +  * [[dokuwiki:dokuwiki-chez-free#sessions|sessions]] PHP non fonctionnelles, 
-  * Les problèmes liés à la destruction des répertoires (fonction ''[[http://php.net/rmdir|rmdir()]]'', +  * Les problèmes liés à la [[dokuwiki:dokuwiki-chez-free#rmdir|destruction des répertoires]] (fonction ''[[http://php.net/rmdir|rmdir()]])'', 
-  * Les problèmes liés à la fonction ''[[http://php.net/glob|glob()]]'', +  * Les [[dokuwiki:dokuwiki-chez-free#glob|problèmes]] liés à la fonction ''[[http://php.net/glob|glob()]]'', 
-  * Les problèmes liés à la fonction ''[[http://php.net/opendir|opendir()]]'', +  * Les [[dokuwiki:dokuwiki-chez-free#opendir|problèmes]] liés à la fonction ''[[http://php.net/opendir|opendir()]]'', 
-  * Les problèmes liés à la fonction ''[[http://php.net/umask|umask()]]''.+  * Les problèmes liés à la fonction ''[[http://php.net/umask|umask()]]''
 +  * [[dokuwiki:dokuwiki-chez-free#fonction_array_fill_keys|problèmes]] liés à l'absence de la fonction  ''[[http://php.net/array_fill_keys|array_fill_keys()]]''
  
 ===== Problèmes non corrigés par liberatator ===== ===== Problèmes non corrigés par liberatator =====
  
-  * Gestionnaire de greffons (//plugins//)\\ Liberatator ne peut **pas** corriger le fait que SSL n'est pas disponible chez free. Donc malgré l'application automatique de correctifsil reste le problème suivant :\\  [[doku>fr:dokuxiki|DokuWiki]] ne peut **pas**, et vraissemblablement ne pourra **jamais**, télécharger des greffons depuis un URL en HTTPS (comme github par exemple) lorsqu'il est installé chez free.+Certains problèmes ne peuvent pas être corrigés par liberatatornotamment :
  
 +  * [[dokuwiki:dokuwiki-chez-free#absence_de_connexion_vers_l_exterieur|Les problèmes]] liés à l'absence de connexion de PHP vers des URL quelconques.
  
 ===== Le programme ===== ===== Le programme =====
Ligne 398: Ligne 426:
  if(file_exists($fn) && ! array_key_exists( 'ecrase_preload', $_REQUEST )) {  if(file_exists($fn) && ! array_key_exists( 'ecrase_preload', $_REQUEST )) {
  $progres['hidden']['ecrase_preload']=1;  $progres['hidden']['ecrase_preload']=1;
- attention( "Le fichier « {$fnh} » existe déjà. Si vous poursuivez, il sera remplacé.</p><p>Sinon, abandonnez l'idée d'utiliser liberatator" );+ attention( "Le fichier « {$fnh} » existe déjà. Si vous poursuivez, il sera remplacé.</p><p>Sinon, abandonnez l'idée d'utiliser liberatator" );
  suivant();  suivant();
  }  }
  */  */
  if( !($fh=fopen($fn, 'w'))) {  if( !($fh=fopen($fn, 'w'))) {
- erreur( "Impossible de créer le fichier « $fn ».<br />Vérifiez la présence du répertoire « ".dirname($fn)." », et les droits d'accès (heu chez free les droits sont <em><b><i><u><big>forcément</big></u></i></b></em> OK)"); + erreur( "Impossible de créer le fichier « $fn ».<br />Vérifiez la présence du répertoire « ".dirname($fn)." », et les droits d'accès (heu chez free les droits sont <em><b><i><u><big>forcément</big></u></i></b></em> OK)"); 
- message( "Cliquez sur le bouton « suivant » pour réessayer");+ message( "Cliquez sur le bouton « suivant » pour réessayer");
  suivant();  suivant();
  }  }
Ligne 480: Ligne 508:
  }  }
  if(false===($contenu=file($fn))) {  if(false===($contenu=file($fn))) {
- erreur( "Étrange ! le fichier « $fn » existe mais on ne peut pas le lire...<br />Vérifiez la présence du répertoire « ".dirname($fn)." », et les droits d'accès (heu chez free les droits sont <em><b><i><u><big>forcément</big></u></i></b></em> OK)"); + erreur( "Étrange ! le fichier « $fn » existe mais on ne peut pas le lire...<br />Vérifiez la présence du répertoire « ".dirname($fn)." », et les droits d'accès (heu chez free les droits sont <em><b><i><u><big>forcément</big></u></i></b></em> OK)"); 
- message( "Cliquez sur le bouton « suivant » pour réessayer");+ message( "Cliquez sur le bouton « suivant » pour réessayer");
  suivant();  suivant();
  }  }
Ligne 490: Ligne 518:
  }  }
  if( !($fh=fopen($fn, 'a'))) {  if( !($fh=fopen($fn, 'a'))) {
- erreur( "Impossible d\'ajouter au fichier « $fn ».<br />Vérifiez la présence du répertoire « ".dirname($fn)." », et les droits d'accès (heu chez free les droits sont <em><b><i><u><big>forcément</big></u></i></b></em> OK)"); + erreur( "Impossible d\'ajouter au fichier « $fn ».<br />Vérifiez la présence du répertoire « ".dirname($fn)." », et les droits d'accès (heu chez free les droits sont <em><b><i><u><big>forcément</big></u></i></b></em> OK)"); 
- message( "Cliquez sur le bouton « suivant » pour réessayer");+ message( "Cliquez sur le bouton « suivant » pour réessayer");
  suivant();  suivant();
  }  }
Ligne 511: Ligne 539:
  if(!file_exists($sess)){  if(!file_exists($sess)){
  if(!mkdir($sess)){  if(!mkdir($sess)){
- erreur( "Impossible de créer le répertoire « {$sess} ».<br />Vérifiez la présence du répertoire « {$_SERVER['DOCUMENT_ROOT']} », et les droits d'accès (heu chez free les droits sont <em><b><i><u><big>forcément</big></u></i></b></em> OK)"); + erreur( "Impossible de créer le répertoire « {$sess} ».<br />Vérifiez la présence du répertoire « {$_SERVER['DOCUMENT_ROOT']} », et les droits d'accès (heu chez free les droits sont <em><b><i><u><big>forcément</big></u></i></b></em> OK)"); 
- message( "Cliquez sur le bouton « suivant » pour réessayer");+ message( "Cliquez sur le bouton « suivant » pour réessayer");
  suivant();  suivant();
  }  }
Ligne 529: Ligne 557:
  }  }
  if($err) {  if($err) {
- erreur( "Impossible d'activer php5 (création/modification du fichier « $fn ».<br />Vérifiez la présence du répertoire « {$ici} », et les droits d'accès (heu chez free les droits sont <em><b><i><u><big>forcément</big></u></i></b></em> OK)"); + erreur( "Impossible d'activer php5 (création/modification du fichier « $fn ».<br />Vérifiez la présence du répertoire « {$ici} », et les droits d'accès (heu chez free les droits sont <em><b><i><u><big>forcément</big></u></i></b></em> OK)"); 
- message( "Cliquez sur le bouton « suivant » pour réessayer");+ message( "Cliquez sur le bouton « suivant » pour réessayer");
  suivant();  suivant();
  }  }
Ligne 537: Ligne 565:
  global $conf;  global $conf;
  if( ! is_writeable( $conf['savedir'] ) ) {  if( ! is_writeable( $conf['savedir'] ) ) {
- erreur( 'Incroyable : Le dossier des verrous n\'est pas écriturable !!!<br />Vérifiez la présence du répertoire « ' . html( $conf['savedir'] ) . ' », et les droits d\'accès (heu chez free les droits sont <em><b><i><u><big>forcément</big></u></i></b></em> OK)'); + erreur( 'Incroyable : Le dossier des verrous n\'est pas écriturable !!!<br />Vérifiez la présence du répertoire « ' . html( $conf['savedir'] ) . ' », et les droits d\'accès (heu chez free les droits sont <em><b><i><u><big>forcément</big></u></i></b></em> OK)'); 
- message( "Cliquez sur le bouton « suivant » pour réessayer");+ message( "Cliquez sur le bouton « suivant » pour réessayer");
  suivant();  suivant();
  }  }
Ligne 820: Ligne 848:
 define( 'DOKU_CONF', $conf ); define( 'DOKU_CONF', $conf );
 $progres['conf']=DOKU_CONF; $progres['conf']=DOKU_CONF;
-if($statut['asauver']) { ok('Dossier « conf » : '); sauvevaleur('sauve', $progres); $statut['asauver']=false; echo $progres['etape'][count($progres['etape'])-1]; }+if($statut['asauver']) { ok('Dossier « conf » : '); sauvevaleur('sauve', $progres); $statut['asauver']=false; echo $progres['etape'][count($progres['etape'])-1]; }
 ############################# inc dir ################# ############################# inc dir #################
 $inc=DOKU_INC . 'inc/'; $inc=DOKU_INC . 'inc/';
Ligne 838: Ligne 866:
 define( 'DOKU_INCLUDE', $inc ); define( 'DOKU_INCLUDE', $inc );
 $progres['inc']=DOKU_INCLUDE; $progres['inc']=DOKU_INCLUDE;
-if($statut['asauver']) { ok('Dossier « inc » : '); sauvevaleur('sauve',$progres); $statut['asauver']=false; echo $progres['etape'][count($progres['etape'])-1]; }+if($statut['asauver']) { ok('Dossier « inc » : '); sauvevaleur('sauve',$progres); $statut['asauver']=false; echo $progres['etape'][count($progres['etape'])-1]; }
 ############################# lib dir ################# ############################# lib dir #################
 #echo "go for lib";flush(); #echo "go for lib";flush();
Ligne 857: Ligne 885:
 define( 'DOKU_LIB', $lib ); define( 'DOKU_LIB', $lib );
 $progres['lib']=DOKU_LIB; $progres['lib']=DOKU_LIB;
-if($statut['asauver']) { ok('Dossier « lib » : '); sauvevaleur('sauve',$progres); $statut['asauver']=false; echo $progres['etape'][count($progres['etape'])-1]; }+if($statut['asauver']) { ok('Dossier « lib » : '); sauvevaleur('sauve',$progres); $statut['asauver']=false; echo $progres['etape'][count($progres['etape'])-1]; }
 ############################### liberatator working dir ############################### liberatator working dir
 if( $progres['etat'] == 'dir_non_verifie' ) if( $progres['etat'] == 'dir_non_verifie' )
Ligne 944: Ligne 972:
  debut_doc();  debut_doc();
  $n=installe_precharge();  $n=installe_precharge();
- ok("Installation « {$n} » : ");+ ok("Installation « {$n} » : ");
  $progres['etat']='precharge_contient_array_fill_keys';  $progres['etat']='precharge_contient_array_fill_keys';
  sauvevaleur('sauve',$progres);  sauvevaleur('sauve',$progres);
Ligne 954: Ligne 982:
  debut_doc();  debut_doc();
  $n=augmente_precharge();  $n=augmente_precharge();
- ok("fonction « array_fill_keys » {$n} : ");+ ok("fonction « array_fill_keys » {$n} : ");
  $progres['etat']='verifie_session';  $progres['etat']='verifie_session';
  sauvevaleur('sauve',$progres);  sauvevaleur('sauve',$progres);
  echo $progres['etape'][count($progres['etape'])-1];  echo $progres['etape'][count($progres['etape'])-1];
- message( "L'étape suivante consiste à vérifier la présence d'un répertoire « sessions », nécessaire à PHP, et donc à <a href=\"http://www.dokuwiki.org/\">DokuWiki</a>, pour gérer les sessions." );+ message( "L'étape suivante consiste à vérifier la présence d'un répertoire « sessions », nécessaire à PHP, et donc à <a href=\"http://www.dokuwiki.org/\">DokuWiki</a>, pour gérer les sessions." );
  suivant();  suivant();
 break; break;
Ligne 964: Ligne 992:
  debut_doc();  debut_doc();
  $n=verifie_session();  $n=verifie_session();
- ok("Répertoire de sessions « {$n} » : ");+ ok("Répertoire de sessions « {$n} » : ");
  $progres['etat']='verifie_php5';  $progres['etat']='verifie_php5';
  sauvevaleur('sauve',$progres);  sauvevaleur('sauve',$progres);
Ligne 1026: Ligne 1054:
   * active PHP 5 si besoin,   * active PHP 5 si besoin,
   * crée si besoin le répertoire ''/sessions'' indispensable,   * crée si besoin le répertoire ''/sessions'' indispensable,
-  * installe un fichier ''inc/preload.php'', qui sera préchargé par DokuWiki et contient les fonctions ''myopendir'', ''myrmdir'', ''myglob'', ''myumask'' et ''array_fill_keys''((nécessaire seulement pourle greffon [[doku>plugin:translation|translattion]])),+  * installe un fichier ''inc/preload.php'', qui sera préchargé par DokuWiki et contient les fonctions ''myopendir'', ''myrmdir'', ''myglob'', ''myumask'' et ''array_fill_keys''((nécessaire seulement pour le greffon [[doku>plugin:translation|translattion]])),
   * nettoye le répertoire de verrous,   * nettoye le répertoire de verrous,
   * crée la liste de fichiers PHP qui peuvent contenir des constructions problématiques en parcourant l'arborescence de dokuwiki à la recherche de tous les fichiers PHP -- en omettant les répertoires ''conf'', ''lang'' et ''geshi'' qui ne contiennent rien de problématique --,   * crée la liste de fichiers PHP qui peuvent contenir des constructions problématiques en parcourant l'arborescence de dokuwiki à la recherche de tous les fichiers PHP -- en omettant les répertoires ''conf'', ''lang'' et ''geshi'' qui ne contiennent rien de problématique --,
   * analyse un à un tous les fichiers de la liste à la recherche d'un appel à l'une des fonctions suivantes ''opendir'', ''rmdir'', ''glob'', ''umask'' et les remplace par des appels respectifs à ''myopendir'', ''myrmdir'', ''myglob'' et ''myumask'',   * analyse un à un tous les fichiers de la liste à la recherche d'un appel à l'une des fonctions suivantes ''opendir'', ''rmdir'', ''glob'', ''umask'' et les remplace par des appels respectifs à ''myopendir'', ''myrmdir'', ''myglob'' et ''myumask'',
   * sauvegarde tout fichier avant modification,   * sauvegarde tout fichier avant modification,
-  * présente une résultat, le journal etc...+  * présente un résultat, le journal etc...
  
 À noter, liberatator est prévu pour résister aux interruptions intempestives. Soit une étape est réalisée, soit elle ne l'est pas. Soit un fichier est modifié, soit il ne l'est pas. il n'y a pas d'état intermédiaire. À noter, liberatator est prévu pour résister aux interruptions intempestives. Soit une étape est réalisée, soit elle ne l'est pas. Soit un fichier est modifié, soit il ne l'est pas. il n'y a pas d'état intermédiaire.
Ligne 1037: Ligne 1065:
 Liberatator peut être lancé de nombreuses fois sur la la même arborescence sans aucun problème. Il est même prévu exactement pour cette utilisation. Liberatator peut être lancé de nombreuses fois sur la la même arborescence sans aucun problème. Il est même prévu exactement pour cette utilisation.
  
 +/*
 ===== exemple de résultats ===== ===== exemple de résultats =====
  
 Depuis le 26-08-2011, un mien script, lancé par crontab met à jour toutes les nuits à 4h, heure de [[wpfr>France]], un autre dokuwiki que celui ci à partir du dernier instantané de dokuwiki. Puis il lance liberatator sur cette mise à jour. Quand liberatator modifie dokuwiki, j'enregistre le journal dans ce dossier http://schplurtz.free.fr/static/res-liberatator/ . Vous pouvez voir ces journaux, bien que le wiki 'latestdw' ne soit accessible qu'à moi même, pour tests. Depuis le 26-08-2011, un mien script, lancé par crontab met à jour toutes les nuits à 4h, heure de [[wpfr>France]], un autre dokuwiki que celui ci à partir du dernier instantané de dokuwiki. Puis il lance liberatator sur cette mise à jour. Quand liberatator modifie dokuwiki, j'enregistre le journal dans ce dossier http://schplurtz.free.fr/static/res-liberatator/ . Vous pouvez voir ces journaux, bien que le wiki 'latestdw' ne soit accessible qu'à moi même, pour tests.
 +*/
 ===== voir aussi ===== ===== voir aussi =====