2009-03-10 6 views
10

Je suis en train d'essayer d'installer PEAR pour que je puisse facilement installer PHPUnit. Je veux mettre en place un environnement de développement Mac, Apache, MySQL, PHP, PHPUnit afin que je puisse tester localement. J'ai déjà Apach, MySQL et PHP. Maintenant, tout ce dont j'ai besoin est PHPUnit, ce qui signifie que j'ai besoin de PEAR pour l'installer.Comment configurer PEAR sur Mac OS X 10.5 Leopard

J'ai cherché partout, et il y a quelques variations du "tutoriel" sur comment installer PEAR sur Mac OS X 10.5. Cependant, je n'arrive pas à les faire travailler! Quelqu'un a-t-il réussi? Je ne suis pas tout à fait certain d'avoir tout configuré comme il se doit, donc si vous pouviez inclure les chemins d'inclusion Mac OS X 10.5 "par défaut", ou une simple explication d'où tout devrait aller, j'apprécierais.

Après this tutoriel, je fais ce qui suit:

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

J'appuyez sur Entrée jusqu'à ce que je à une liste avec 7 comprennent des chemins:

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 Installation prefix être /usr/local, appuyez sur Entrée pour continuer, tapez Y pour également installer PEAR_Frontend_Web-beta, PEAR_Frontend_Gtk2, MDB2. Finalement, tout est installé.

Suivant ...

Sur le premier essai, je pense que include_path a été commentée du fichier php.ini, mais comme je l'ai déjà changé cette ligne, et ce n'est pas la première fois que je essayé 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] : 

type I Y et laissez-poire à jour automatiquement mon chemin de recherche:

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 

je presse ent er de continuer, et 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 que je sais pourquoi ces deux derniers avertissements sont venus. Auparavant, j'ai essayé de résoudre le problème de répertoire temporaire en créant un lien symbolique vers/tmp mais si je comprends bien, PEAR essaie de créer son propre répertoire temporaire pour l'installation, puis il va le supprimer quand il est fini. Donc, je n'aurais pas dû créer ce lien symbolique car il va essayer de supprimer le répertoire temporaire quand l'installation est terminée.

+0

Pourriez-vous décrire le problème que vous rencontrez? – hhafez

Répondre

16

Il y a quelques choses qui pourraient mal se passer ici, ce ne sont que des conjectures.

D'abord, il y a deux chemins dont vous devez vous soucier. Le premier est votre chemin d'inclusion PHP. Les bibliothèques PEAR sont (surtout) du code PHP, spécialement emballées. Lorsque vous installez un module PEAR, vous téléchargez tout le code PHP nécessaire pour cette bibliothèque, et toutes les autres bibliothèques PEAR sur lesquelles repose la bibliothèque que vous installez (désolé pour cette phrase, mais je ne suis pas sûr qu'il existe une meilleure façon de dire cette). Ce chemin include est défini dans vos fichiers php.ini (un fichier pour votre php en ligne de commande, un autre pour le serveur web yoru php, souvent le même fichier).

Le deuxième chemin d'inclusion que vous devez prendre en compte est votre chemin d'accès UNIX/shell. C'est le chemin que votre ordinateur va rechercher des commandes lorsque vous entrez une commande à partir d'un terminal. La commande 'pear' est une commande en ligne de commande.

Donc, nous devons nous assurer que

  1. Le fichier php.ini pour votre site dans le répertoire PEAR dans son chemin d'inclusion
  2. Le fichier php.ini pour votre application en ligne de commande php a la répertoire PEAR dans son chemin d'inclusion
  3. Votre application shell (terminal, BASH probable que vous êtes sur OS X) a le répertoire PEAR dans son chemin d'inclusion

Ainsi, pour le numéro 1, mettre une page PHP y notre serveur qui inclut l'appel de fonction

phpinfo(); 

Ceci affichera 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 d'accès à votre répertoire PEAR (ne supprimez pas les autres chemins, ajoutez simplement les vôtres).

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 imprimera, chercher celui qui lit quelque chose comme « fichier de configuration Loaded ». Ouvrez ce fichier dans un éditeur de texte, recherchez la variable include_path et ajoutez le chemin d'accès à votre répertoire PEAR (ne supprimez pas les autres chemins, ajoutez simplement les vôtres).

Enfin, et c'est ce que je pense que votre problème est, nous devons nous assurer que la commande ligne de commande pear est dans votre shell/bash path. C'est ce que cette erreur est à référait

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

Il devrait y avoir un fichier dans votre répertoire nommé « .bash_profile ». C'est un fichier caché, donc il n'apparaîtra pas 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 pico en ligne de commande. Ctrl-X va enregistrer à partir 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, l'ordinateur yoru recherche la commande dans ce dossier. Ajoutez la ligne suivante au bas de .bash_profile

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

Ceci est, plus ou moins, equivilant au code PHP suivant

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

Vous ajoutez/usr/local/bin comme le premier emplacement délimité par deux points pour rechercher la commande, puis en y ajoutant le reste du chemin existant. Une fois que vous avez ajouté cette ligne, fermez votre terminal, ré-ouvrir, puis tapez

pear 

Cela devrait vous donner une liste de commandes de PEAR, mais surtout vous permettra de savoir poire est dans votre chemin .

Bonne chance!

+0

Je reçois la "commande non trouvée". Ai-je omis un pas? – Andrew

+0

Que se passe-t-il lorsque vous tapez '/ usr/local/bin/pear'? –

+0

Ce serait génial si vous pouviez ajouter votre syntaxe php.ini include_path. J'ai fait fonctionner ce sorta, mais j'ai encore des problèmes avec la rupture. –

2

Je l'ai compris. Vous "devez" courir le go-pear.php à l'endroit où vous voulez poire installé, vous devez l'exécuter sous/usr/local si vous voulez binaire de poire à installer dans/usr/local/bin

:-)

0

utilisateur « bryan kennedy » (ci-dessus) a voulu connaître la syntaxe pour le changement « include_path » nécessaire dans « php.ini »

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

le changement à php.ini ressemblera ...

include_path=".:/path_to_pear_dir/PEAR" 

c'est à quoi il ressemble quand vous permettez « go-pear.php » pour faire le changement ....

;***** Added by go-pear 
include_path=".:/usr/local/bin/PEAR" 
;***** 
Questions connexes