Accueil du site > INFORMATIQUE > PHP > Memo pour la mise à jour de XAMPP pour Linux (Apache Friends)

Memo pour la mise à jour de XAMPP pour Linux (Apache Friends)

dimanche 20 mai 2007, par Thierry Bothorel

Ayant préféré installer XAMPP pour Linux comme plate-forme de développement PHP plutôt que d’utiliser les paquets de ma distribution, je n’avais pas encore mis à jour ma 1ère installation de XAMPP…

En effet sous Windows j’installais les éléments séparément, mais sous Linux j’ai préféré installer XAMPP pour Linux. Ma version étant la 1.5.2 avec PHP 5.1.2, je veux passer en 1.5.5a minimum (PHP 5.2).

J’ai regardé un peu leur système d’upgrade, mais je n’ai pas utilisé cette solution (j’aurai peut-être du !) :

- Je n’ai d’une manière générale pas confiance dans ce genre de scripts. Leur script est censé gérer la mise à jour des fichiers par différence, mais j’ai plusieurs fichiers que j’ai modifié, et je risque de passer plus de temps à corriger ce qu’il n’a pas pu faire.

- Comment vais-je retrouver mes librairies PEAR qui bougent beaucoup avec les upgrades et ajouts ?

- Si je n’avais qu’un upgrade à faire, çà irait encore, mais avec l’obligation de ne pas sauter de versions, j’en aurai environ 7 à faire à la suite !

Voici donc un guide pas à pas qui va me servir et peux en intéresser d’autres :

  • Démarrer Xampp

  • Faire un backup de la version de Xampp en cours ( au cas où) :
  • Dump des bases Mysql utilisateurs (non systèmes et non Xampp).

    • Récupérer la liste des bases à sauvegarder :
    • mettre la liste dans un éditeur sur une seule ligne, un espace par nom, en enlevant :

      information_schema, cdcol, mysql, phpmyadmin et test

    • exporter toutes les bases en collant la liste ci-dessus à la place de  :
  • Imprimer la liste des utilisateurs et noter leurs privilèges pour les recréer ensuite. Je sais que c’est impossible pour un nombre important de comptes avec des privilèges spécifiques sur les tables/colonnes mais :

    • Ce n’est pas mon cas ! J’ai peu de comptes en local
    • D’une façon générale, j’ai horreur d’importer directement dans les tables systèmes, surtout quand la base Mysql cible n’est pas de version identique.

  • Pour pouvoir recréer les mots de passe à l’identique, si on ne veut pas rechercher les vrais mots de passe, faire un export dans PhpMyadmin de la table mysql->user en décochant “Encoder les champs binaires en hexadécimal”. Il suffira ensuite de copier le mot de passe hashé directement dans le champ “password”.

  • Pour pouvoir recréer les droits utilisateurs sur chaque base, récupérer la sortie de /mysql/db

  • Récupérer les infos PEAR pour la réinstallation :
  • arrêter XAMMP

  • Renommer /opt/lampp/ en /opt/lampp-version/ pour pouvoir récupérer les fichiers modifiés.

  • Installer le nouveau XAMPP.

  • Reporter toutes les modifications faites dans l’ancien XAMPP dans le nouveau. Pour moi, tous les fichiers sur lesquels j’ai effectué une modification sont dupliqués avec l’extension DIST. Je garde en plus dans un fichier séparé une note de toutes les modifications que j’ai pu faire.

  • Créer les deux fichiers PHP.INI<4.version> et PHP.INI<5.version> dans /opt/lampp/etc en recopiant ceux de l’ancienne version de XAMPP. Cette étape est personnelle et résulte de l’utilisation de fichiers PHP.INI séparés pour PHP4 et PHP5. Par défaut c’est le même dans XAMPP.

  • Mettre à jour ces deux fichiers PHP.INI<version> avec les nouveautés des nouvelles versions de PHP4 et 5. S’aider de l’Historique de PHP.INI pour visualiser les différences.

  • Mettre éventuellement à jour le chemin des extensions de PHP.INI. Exemple /opt/lampp/lib/php/extensions/no-debug-non-zts-20060613/. Normalement déjà renseigné au moement de la compilation.

  • Supprimer /opt/lampp/etc/php.ini (Deux PHP.INI pour PHP4 et PHP5 avec XAMPP pour Linux)

  • Le remplacer par un lien vers PHP.ini.5.x.x (version en cours lors à l’installation de XAMPP) et le nommer php.ini

  • Modification de /opt/lampp/lampp pour gérer les deux fichiers PHP.ini (voir Deux PHP.INI pour PHP4 et PHP5 avec XAMPP pour Linux).

  • Selon le déboggeur que vous utilisez (DBG, ZendDebugger, XDebug), recopier ces extensions à partir de la sauvegarde dans les nouveaux répertoires d’extensions, où mettez les à jour s’ils ne sont plus compatibles avec les nouvelles versions de PHP. Par exemple :

       opt/lampp/lib/php/extensions/no-debug-non-zts-200ymmdd/dbg.so-5.x.x (dossier pour PHP5)  
       opt/lampp/lib/php/extensions/no-debug-non-zts-200ymmdd/dbg.so-4.x.x  (dossier pour PHP4)

ou :

   opt/lampp/lib/php/extensions/no-debug-non-zts-200ymmdd/ZendDebugger.so (dossier pour PHP5)  

opt/lampp/lib/php/extensions/no-debug-non-zts-200ymmdd/ZendDebugger.so (dossier pour PHP4)
  • Pour que les applications PHP de XAMMP fonctionnent, et notemment sa page d’accueil, ajouter un fichier .htaccess dans /htdocs/xampp/ avec php_value short_open_tag On. En effet C’est une bonne pratique de ne pas utiliser les “short_open_tags”, je les désactive dans PHP.INI. Or les pages de gestion de XAMMP les utilisent, et quand on y pense pas, l’affichage devient … rock’n roll !

  • Importer les tables MYSQL :
  • Recréer les utilisateurs avec tout leurs droits.

  • Relancer Xampp et tester les deux versions PHP avec phpinfo.

  • Remettre PEAR à jour (peut se faire petit à petit).

  • Transférer tous les fichiers supplémentaires de l’ancien /htdocs/ dans le nouveau.

  • Ouf, c’est fini !

Toute suggestion est la bienvenue !

Répondre à cet article | RétroLiens :0


2 Messages de forum

  • Bon moi j’ai + facile (il faut qd même vérifier les lib PEAR) mais je fais cela depuis un bon moment.
    Le serveur (linux) comprend notre Intranet + des applis webmail & groupware [500-600 postes]
    0) cd /opt
    1) cp -a lampp lampp-sauv
    2) cp -a /opt/lampp/var/mysql /opt/lampp/var/mysql-sauv
    3) tar -zxvf xampp-xxx.tar.gz (moi aussi je n’utilise pas l’upgrade)
    4) mv /opt/lampp/var/mysql /opt/lampp/var/mysql-new
    5) mv /opt/lampp/var/mysql-sauv /opt/lampp/var/mysql
    6) à la fin du fichier /opt/lampp-sauv/etc/httpd.conf j’ai des "include" qui pointe vers mes vrais fichiers de conf de la même manière que le fichier etc/extra/httpd-xampp.conf .
    → Je rajoute donc ces includes sur le nouveau fichier httpd.conf,voire selon la version d’apache je copie directement le httpd.conf
    7) j’ai un fichier trace que j’utilise lorsque je fais quelques modifs sous le php.ini
    → j’utilise donc ce fichier pour mettre à jour php.ini
    (idem pour proftpd)

    Répondre à ce message

Répondre à cet article