Question

En fin de compte, j'essaye d'installer PEAR pour pouvoir installer facilement PHPUnit. Je souhaite configurer un environnement de développement Mac, Apache, MySQL, PHP, PHPUnit afin de pouvoir effectuer des tests localement. J'ai déjà Apach, MySQL et PHP qui fonctionnent. Maintenant, tout ce dont j'ai besoin, c'est PHPUnit, ce qui signifie que j'ai besoin de PEAR pour l'installer.

J'ai effectué des recherches dans tous les domaines et il existe quelques variantes du "didacticiel". comment installer PEAR sur Mac OS X 10.5. Cependant, je n'arrive pas à faire en sorte qu'ils fonctionnent! Quelqu'un a-t-il réussi? Je ne suis pas totalement sûr d'avoir tout configuré comme il se doit, donc si vous pouviez inclure le "défaut" Mac OS X 10.5 contient des chemins ou une simple explication de l'endroit où tout devrait aller, je vous en serais reconnaissant.

Après cette tutorial Je fais ce qui suit:

curl http://pear.php.net/go-pear > go-pear.php
sudo php -q go-pear.php

J'appuie sur Entrée jusqu'à une liste de 7 chemins d'inclusion:

1. Installation prefix ($prefix) : /Users/andrew
2. Temporary files directory     : $prefix/temp
3. Binaries directory            : $prefix/bin
4. PHP code directory ($php_dir) : $prefix/PEAR
5. Documentation base directory  : $php_dir/docs
6. Data base directory           : $php_dir/data
7. Tests base directory          : $php_dir/tests

Je change le préfixe d'installation en / usr / local , appuyez sur Entrée pour continuer, tapez Y pour installer également PEAR_Frontend_Web -beta, PEAR_Frontend_Gtk2, MDB2 . Finalement, tout est installé.

Suivant ...

Au premier essai, je pense que include_path a été commenté à partir du fichier php.ini, mais depuis que j'ai déjà changé cette ligne, et ce n'est pas la première fois que j'essaie d'installer , Je reçois le message suivant:

WARNING!  The include_path defined in the currently used php.ini does not
contain the PEAR PHP directory you just specified:
</usr/local/PEAR>
If the specified directory is also not in the include_path used by
your scripts, you will have problems getting any PEAR packages working.

Would you like to alter php.ini </private/etc/php.ini>? [Y/n] : 

Je tape Y et laisse pear mettre à jour automatiquement mon chemin d'inclusion:

php.ini </private/etc/php.ini> include_path updated.

Current include path           : .:/usr/share/pear
Configured directory           : /usr/local/PEAR
Currently used php.ini (guess) : /private/etc/php.ini

J'appuie sur Entrée pour continuer et obtenir le message suivant:

The 'pear' command is now at your service at /usr/local/bin/pear

** The 'pear' command is not currently in your PATH, so you need to
** use '/usr/local/bin/pear' until you have added
** '/usr/local/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!

PHP Warning:  rmdir(/usr/local/temp): Not a directory in /Users/andrew/go-pear.php on line 1237

Warning: rmdir(/usr/local/temp): Not a directory in /Users/andrew/go-pear.php on line 1237

Mise à jour: je pense savoir pourquoi ces deux derniers avertissements ont été émis. Auparavant, j'essayais de résoudre le problème du répertoire temporaire en créant un lien symbolique vers / tmp mais si je comprends bien, PEAR tente de créer son propre répertoire temporaire pour l'installation, puis le supprimera une fois l'opération terminée. Je n'aurais donc pas dû créer ce lien symbolique car il va essayer de supprimer le répertoire temporaire une fois l'installation terminée.

Était-ce utile?

La solution

Il y a quelques petites choses qui pourraient mal tourner ici, ce ne sont que des suppositions.

Tout d'abord, il existe deux de chemins d'inclusion pour lesquels vous devez vous inquiéter. Le premier est votre chemin d'inclusion PHP. Les bibliothèques PEAR ne sont (pour la plupart) que du code PHP spécialement emballé. Lorsque vous installez un module PEAR, vous téléchargez tout le code PHP nécessaire à cette bibliothèque, ainsi que toutes les autres bibliothèques PEAR dont vous dépendez (désolé pour cette phrase, mais je ne suis pas sûr qu'il existe un meilleur moyen de dire cette). Ce chemin d’inclusion est défini dans vos fichiers php.ini (un fichier pour votre ligne de commande php, un autre pour votre serveur Web php; souvent le même fichier).

Le deuxième chemin d'inclusion dont vous devez vous soucier est votre chemin d'inclusion UNIX / shell. C’est le chemin dans lequel votre ordinateur va rechercher les commandes lorsque vous entrez une commande à partir d’un terminal. La commande "pear" est une commande en ligne de commande.

Nous devons donc nous assurer que

  1. Le fichier php.ini de votre site Web contient le répertoire PEAR dans son chemin d'inclusion
  2. Le fichier php.ini de votre application php en ligne de commande a le répertoire PEAR dans son chemin d'inclusion
  3. Votre application shell (terminal, probablement sous BASH sous OS X) a le répertoire PEAR dans son chemin d'inclusion

Donc, pour le numéro 1, placez une page PHP sur votre serveur incluant l'appel de fonction

phpinfo();

Ceci listera un tas d’informations sur votre serveur. Recherchez l'emplacement de php.ini. Ouvrez ce fichier dans un éditeur de texte, recherchez la variable include_path et ajoutez le chemin dans votre répertoire PEAR (ne supprimez pas les autres chemins, ajoutez simplement le vôtre).

Pour le numéro 2, exécutez ce qui suit à partir de votre ligne de commande

php -r "phpinfo();" | grep '.ini'

Un tas de lignes s'imprimeront, cherchez celle qui lit quelque chose comme "Fichier de configuration chargé". Ouvrez ce fichier dans un éditeur de texte, recherchez la variable include_path et ajoutez le chemin dans votre répertoire PEAR (ne supprimez pas les autres chemins, ajoutez simplement le vôtre).

Enfin, et c’est ce que je pense que votre problème est, nous devons nous assurer que la commande en ligne de commande pear est dans votre chemin shell / bash. C’est ce à quoi cette erreur fait référence

** The 'pear' command is not currently in your PATH, so you need to

Votre répertoire personnel devrait contenir un fichier nommé '.bash_profile'. C'est un fichier caché, il ne sera donc pas affiché dans le Finder. Ouvrez-le avec un éditeur de texte. Si vous rencontrez des problèmes car il s'agit d'un fichier caché, utilisez l'éditeur de ligne de commande pico. Ctrl-X sauvera de pico

cd ~
pico .bash_profile

Ce fichier est exécuté par votre shell à chaque fois que vous ouvrez une fenêtre de terminal. Nous allons ajouter / usr / local / bin à votre PATH, ce qui signifie que lorsque vous essayez d'exécuter une commande, votre ordinateur la recherchera dans ce dossier. Ajoutez la ligne suivante au bas de .bash_profile

export PATH=/usr/local/bin:$PATH

Cela équivaut plus ou moins au code PHP suivant

$PATH = '/usr/local/bin:'.$PATH

Vous ajoutez / usr / local / bin comme premier emplacement de recherche de commande, délimité par des deux-points, puis vous ajoutez le reste du chemin existant. Une fois que vous avez ajouté cette ligne, fermez votre terminal, rouvrez-le, puis tapez

pear

Ceci devrait vous donner une liste de commandes pear valables, mais surtout vous faire savoir que pear est sur votre chemin.

Bonne chance!

Autres conseils

Je l'ai compris. Vous devez "&"; lancez le fichier go-pear.php à l'emplacement où vous voulez installer pear, vous devez donc l'exécuter sous / usr / local si vous souhaitez installer le fichier binaire pear sous / usr / local / bin

:-)

utilisateur " bryan kennedy " (ci-dessus) souhaitait connaître la syntaxe de l'option "include_path". changement nécessaire dans "php.ini"

(J'ai eu un problème similaire à celui de l'OP et je viens de résoudre le problème à l'aide de ce post.)

le changement dans php.ini ressemblera à ...

include_path=".:/path_to_pear_dir/PEAR"

voici à quoi cela ressemble quand vous autorisez & go; go-pear.php " pour faire le changement ....

;***** Added by go-pear
include_path=".:/usr/local/bin/PEAR"
;*****
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top