Site icon baudet.me

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 !

  9. (Facultatif) ensuite ajouter votre nouvelle variable dans vos variables d’environnement, si cela vous est utile
  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

    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

  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 :
    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>
  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

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 !

Quitter la version mobile