Sélectionner une page

Installer PEAR sur son WAMP

Installer PEAR sur sa machine peut devenir un cauchemar Googlesque. Voici comment le faire en quelques étapes…

Récemment, j’ai dû installer les librairies PEAR pour un projet en PHP. Voici comment le faire chez vous 🙂

Le problème

J’ai une machine sous Windows, sur laquelle j’ai installé Wamp server et bien évidemment, PEAR n’était pas inclus. J’ai donc cherché quelques temps en ligne avant de trouver un how-to adapté.

La solution

Pour installer PEAR, il faut :

  1. Télécharger le fichier go-pear.phar
  2. Placer le fichier téléchargé dans votre répertoire C:/wamp/bin/php/phpX.Y.Z/
  3. Ouvrir la ligne de commande en mode administrateur et naviguer vers le dossier où on vient de mettre le document go-pear. Dans mon cas :
    cd "C:\wamp\bin\php\php5.4.3"
  4. Entrer la commande suivante :
    php -d phar.require_hash=0 go-pear.phar
  5. Choisir si on veut une copie locale (écrire “system:local”) ou pour tout le système (écrire “system”) et taper Entrée.
  6. Entrer “yes” puis Entrée.
  7. Taper à nouveau Entrée quand on vous demande les emplacements où installer PEAR.
  8. Taper à nouveau Entrée quand on vous demande s’il faut modifier php.ini.

    Une bonne nouvelle !

    Une bonne nouvelle !

  9. (Facultatif) ensuite ajouter votre nouvelle variable dans vos variables d’environnement, si cela vous est utile
    Les variables d'environnement
  10. Pour pouvoir appeler les fonctionnalités de PEAR plus simplement, on peut aussi aller modifier le fichier php.ini et ajouter le chemin vers PEAR manuellement, avant de redémarrer son serveur Apache.
    Comment accéder au fichier php.ini depuis l'interface de Wamp.

    Comment accéder au fichier php.ini depuis l’interface de Wamp

    Faites une recherche dans le fichier pour include_path et ajoutez l’endroit de votre PEAR, comme ci-dessous, puis sauvegardez :

    Ligne à modifier dans votre php.ini

    Ligne à modifier dans votre php.ini

  11. Toujours dans le fichier php.ini : Si vos tests avec PEAR soulèvent une nuée d’alertes de code déprécié, des warnings ou des notices, vous pouvez faire l’autruche en modifiant la ligne error_reporting comme suit :
    error_reporting = E_ERROR

    Cela n’affichera plus que les erreurs de compilation du code. (Notez que je ne pense pas que ce soit une bonne chose, mais on pourra au moins travailler avec PEAR.)

  12. (facultatif) Il peut aussi être intéressant de donner à PEAR le chemin de notre php.ini (notamment si on y a fait des modifications). Pour cela : ouvrir une console en mode admin, se déplacer jusqu’à votre répertoire PHP et informer PEAR en saisissant la ligne ci-dessous :
    Configuration de PEARVous pouvez notamment utiliser les commandes suivantes dans la console :

    pear config-show
    pear config-get <ma config>
    pear config-set <ma config> <ma valeur>
  13. Normalement à ce moment-là, on redémarre Apache et on est bons !

Pour tester

Pour tester si l’installation s’est bien passée et qu’on peut utiliser les fonctionnalités de PEAR, on peut saisir les lignes suivantes dans un fichier de test :

require_once 'System.php';
var_dump(class_exists('System', false));

Puis afficher le fichier depuis son explorateur. Si vous n’avez pas d’erreur, c’est tout bon !

Pour installer Auth

Pour installer la libraire, ouvrez une ligne de commande en mode administrateur, dirigez-vous vers votre dossier php/php5.4.3/pear/. Faites un “pear list” pour voir si vous êtes au bon niveau. Vous devriez voir le résultat comme ci-dessous.

Saisissez ensuite “pear download Auth”

Puis “pear install Auth”

Vous pouvez faire de même pour la librairie “Log” qui est une dépendance de Auth.

Comment installer une librairie pour PEAR

Comment installer une librairie pour PEAR

Il faudra aussi installer MDB2 et MDB2_Driver_mysql en faisant un “pear install mdb2”, puis “pear install MDB2_Driver_mysql”.

Si la commande ci-dessus ne fonctionne pas, il faudra faire un “pear clear-cache”.

Pour tester Auth

Pour tester la classe Auth, vous pouvez importer le dump de Auth dans votre base de données. Vous pouvez ensuite copier le code suivant dans un fichier de test (php) et l’exécuter. Vous devriez voir un formulaire de login. Saisissez test et test comme login et mot de passe.

<?php
/*-----------------------
Demande l'installation des librairies Auth, MDB2, et MDB2_Driver_mysql de pear. 
------------------------*/
require_once "Auth.php";
function loginFunction($username = null, $status = null, &$auth = null) 
{
 echo "<form method=\"post\" action=\"\">"; // édité action='nomDuFichier'
 echo "Username: <input type=\"text\" name=\"username\"><br/>"; 
 echo "Password: <input type=\"password\" name=\"password\"><br/>"; 
 echo "<input type=\"submit\">"; 
 echo "</form>"; 
 }

$options = array('dsn' => 'mysql://root:@localhost/test.database',
 'table' => 'auth',
 'usernamecol' => 'username',
 'passwordcol' => 'password',
 'db_fields' => '*',
 'cryptType' => 'MD5',
 'db_options' => array('portability' => MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_FIX_CASE)
 );

$a = new Auth('MDB2', $options, 'loginFunction');
$a->start();
if ($_GET['action'] == "logout" && $a->checkAuth()) { 
 $a->logout(); 
 $a->start(); 
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
 <head> 
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>Login</title>
 </head>
 <body>
<?php
if ($a->getAuth()) {
 echo "<p>Bonjour, vous êtes authentifié!</p>";
 echo "<p><a href=\"?action=logout\">Deconnexion</a></p>"; // édité href='nomDuFichier' 
}
echo "<pre>";
print_r($a);
echo "</pre>";
?>
</body>
</html>

Code provenant de Rapou.

Pour un exemple de Auth

http://pear.php.net/manual/en/package.authentication.auth.intro-logging.php

La source

J’ai trouvé la solution d’installation simplement expliquée en anglais sur cette réponse de StackOverflow. Merci à Jose A !

Et surtout merci à Rapou pour son aide précieuse !

24 Commentaires

  1. Mehdiway

    Merci mille fois ! Ça fait une heure que je tombe sur des tuto bidons et voilà que je trouve le tien, tu m’a sauvé la vie !

    Réponse
  2. Nicolas

    C’est très volontiers, Mehdiway 😉
    La rédaction de ce script a aussi demandé pas mal d’heures de recherches. Un bon exemple de Learning by Doing !

    Réponse
  3. Remy

    Salut! merci pour ton TUTO qui tien la route. par contre j’ai un soucis à partir de l’installation de Auth. le téléchargement ce passe bien mais l’install me renvoie:
    >> “ERROR: Fails to mkdir C:\php\pear\data\Auth\Auth\frontend”

    Une solution ?

    Réponse
    • Nicolas

      Salut Remy,
      La ligne de commande doit être utilisée en mode administrateur pour pouvoir faire un mkdir à cet endroit.
      Essaie déjà ça 😉

      Réponse
  4. Nukium

    Merci pour le tuto !

    Réponse
  5. roirand

    bonjour,

    j’avais seulement besoin de require_once(“Mail/mimeDecode.php”);
    et je me retrouve dans une galère depuis plusieurs jours.
    grâce à vous je crois que j’ai réussi à charger pear, mais je suis complètement largué.
    je ne vois pas comment ça s’articule par rapport à mon serveur PHP wamp

    salutations

    Réponse
    • Nicolas

      Bonjour roirand,
      dans votre cas, je rajouterai le path de PEAR à votre environnement (étape 9), puis je testerai avec un

      require_once 'System.php';
      var_dump(class_exists('System', false));
      

      Si cela fonctionne, c’est que PEAR est installé correctement, donc potentiellement mimeDecode aussi.
      Sinon essayez de l’installer manuellement depuis la ligne de commande en mode admin, avec un pear download <la librairie> .
      Bon courage !

      Réponse
  6. Seiko

    Un grand merci pour le tuto!

    Réponse
  7. Babar

    Clair et efficace, super tuto, merci !

    Réponse
    • Nicolas

      Hey ShoShan,
      Thank you!
      Could you read my french OK?

      Réponse
  8. Lolo

    Merci pour le tuto détaillé.
    Pour info, ne tentez pas d’utiliser Cygwin pour installer Pear, ça ne marche pas !… (en tout cas chez moi)

    Réponse
    • Nicolas

      Merci Lolo pour le feedback 😉

      Réponse
  9. Robert

    Hello,

    Pour lancer la commande en mode administrateur en mode flemmard :
    – menu démarrer
    – tapper “CMD”
    – appuyer simultanément sur (Ctrl + Shift + Enter)

    et ça deviens encore plus facile !

    Réponse
    • Nicolas

      Merci pour le tuyau et la petite visite, Robert 😉

      Réponse
  10. Audric FEUYAN

    T’es est ange, ca fait des heures que je me casse la tete avec ca. vraiment mille merci!!!!

    Réponse
  11. aiglefin

    très coolllllllllllllllll! je viens d’economiser des heures de travail!

    Merci! 🙂

    Réponse
  12. naspirault

    Merci pour le tutoriel! Tout a fonctionné jusqu’au moment de tester Auth…

    J’ai téléchargé le fichier zip, copié le code, mais je n’ai pas le fichier auth.php
    Donc, plein d’erreurs 😉 Est-ce que vous pouvez me guider pour trouver le fichier manquant?

    Merci.
    naspirault

    Réponse
    • Nicolas

      Bonjour naspirault,

      Il faut importer le code SQL dans une de vos bases de données avec PHPMyAdmin, par exemple. Avez-vous fait cette étape ?
      Elle permet de créer un utilisateur de test pour voir si auth fonctionne.

      Ensuite il faut créer le fichier de test avec le code fourni et y accéder depuis votre browser afin de vérifier que vous pouvez vous logger avec l’utilisateur de test.

      Réponse
  13. yasmine

    Trés boon tuto bravo 🙂
    Mais juste que mon installation a mal tourné j’ai une erreur aprés l exécution de ces 2 lignes require_once ‘System.php’;
    var_dump(class_exists(‘System’, false));
    Que faire SVP?

    Réponse
  14. Davenne Marc

    le go-pear.php fourni ne fonctionne pas.

    Réponse
  15. Simphorin TEMDEMNOU

    ouf!tu es un sauveur!
    je me suis casser la tête en vain pendant des heures en vain
    très bon tuto.

    Réponse
  16. kaliste

    Bonjour
    J’ai suivi le tuto d’installation, mais au final, si l’installation s’est bin passée, je n’arrive pas à faire fonctionner PEAR.
    Voilà le message de fin d’installation
    A priori, c’est une question de PATH, mais je bloque dessus
    Si quelqu’un peu m’aider, cela serait parfaite
    Merci par avance

    WARNING: Cannot write to /home/rossi/admin/config/php/php.ini, but php.ini was successfully created
    at . Please replace the file with
    or modify your php.ini by adding:

    include_path=”.:/home/rossi/pear/share/pear”

    Current include path : .:
    Configured directory : /home/rossi/pear/share/pear
    Currently used php.ini (guess) : /home/rossi/admin/config/php/php.ini
    Press Enter to continue:

    ** WARNING! Old version found at /home/rossi/pear/bin, please remove it or be sure to use the new /home/rossi/pear/bin/pear command

    The ‘pear’ command is now at your service at /home/rossi/pear/bin/pear

    ** The ‘pear’ command is not currently in your PATH, so you need to
    ** use ‘/home/rossi/pear/bin/pear’ until you have added
    ** ‘/home/rossi/pear/bin’ to your PATH environment variable.

    Run it without parameters to see the available actions, try ‘pear list’
    to see what packages are installed, or ‘pear help’ for help.

    For more information about PEAR, see:

    http://pear.php.net/faq.php
    http://pear.php.net/manual/

    Thanks for using go-pear!

    Réponse

Rétroliens/Pings

  1. Bonnes pratiques : Mise en place d’un environnement de développement normalisé avec NetBeans - Hervé Hennes – Blog - […] https://baudet.me/2013/05/installer-pear-sur-son-wamp/ […]

Répondre à Audric FEUYAN Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *