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 :
- Télécharger le fichier go-pear.phar
- Placer le fichier téléchargé dans votre répertoire C:/wamp/bin/php/phpX.Y.Z/
- 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"
- Entrer la commande suivante :
php -d phar.require_hash=0 go-pear.phar
- Choisir si on veut une copie locale (écrire “system:local”) ou pour tout le système (écrire “system”) et taper Entrée.
- Entrer “yes” puis Entrée.
- Taper à nouveau Entrée quand on vous demande les emplacements où installer PEAR.
- Taper à nouveau Entrée quand on vous demande s’il faut modifier php.ini.
- (Facultatif) ensuite ajouter votre nouvelle variable dans vos variables d’environnement, si cela vous est utile
- 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.
Faites une recherche dans le fichier pour include_path et ajoutez l’endroit de votre PEAR, comme ci-dessous, puis sauvegardez :
- 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.)
- (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 :
Vous pouvez notamment utiliser les commandes suivantes dans la console :pear config-show pear config-get <ma config> pear config-set <ma config> <ma valeur>
- 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.
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 !
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 !
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 !
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 ?
Salut Remy,
La ligne de commande doit être utilisée en mode administrateur pour pouvoir faire un mkdir à cet endroit.
Essaie déjà ça 😉
Merci pour le tuto !
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
Bonjour roirand,
dans votre cas, je rajouterai le path de PEAR à votre environnement (étape 9), puis je testerai avec un
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 !
Un grand merci pour le tuto!
Clair et efficace, super tuto, merci !
Nice one… Thanks…
Hey ShoShan,
Thank you!
Could you read my french OK?
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)
Merci Lolo pour le feedback 😉
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 !
Merci pour le tuyau et la petite visite, Robert 😉
T’es est ange, ca fait des heures que je me casse la tete avec ca. vraiment mille merci!!!!
De rien Audric 😉
très coolllllllllllllllll! je viens d’economiser des heures de travail!
Merci! 🙂
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
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.
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?
le go-pear.php fourni ne fonctionne pas.
ouf!tu es un sauveur!
je me suis casser la tête en vain pendant des heures en vain
très bon tuto.
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!