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 !