2009-03-10 12 views
10

Alla fine sto provando a installare PEAR in modo da poter installare facilmente PHPUnit. Voglio configurare un ambiente di sviluppo Mac, Apache, MySQL, PHP, PHPUnit in modo da poter testare localmente. Ho già fatto funzionare Apach, MySQL e PHP. Ora tutto ciò di cui ho bisogno è PHPUnit, il che significa che ho bisogno di PEAR per installarlo.Come configurare PEAR su Mac OS X 10.5 Leopard

Ho cercato dappertutto, e ci sono alcune varianti del "tutorial" su come installare PEAR su Mac OS X 10.5. Tuttavia, non riesco a far funzionare nessuno di loro! Qualcuno ha avuto successo con questo? Non sono del tutto sicuro di avere tutto configurato come dovrebbe essere, quindi se potessi includere il "predefinito" Mac OS X 10.5 includi percorsi o una semplice spiegazione di dove tutto dovrebbe andare, lo apprezzerei.

seguito this esercitazione faccio la seguente:

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

ho premere Invio fino a ottenere una lista con 7 percorsi di inclusione:

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 

cambio la Installation prefix essere /usr/local, premere invio per continuare, digitare Y per installare anche PEAR_Frontend_Web-beta, PEAR_Frontend_Gtk2, MDB2. Alla fine, tutto è installato.

Avanti ...

al primo tentativo, credo include_path stata commentata del file php.ini, ma dal momento che ho già cambiato questa linea, e questa non è la prima volta che ho provato ad installare, ottengo il seguente messaggio:

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

digito Y e lascio pera aggiornare automaticamente il mio percorso di inclusione:

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 

I premere ent ER per continuare, e ottengo il seguente messaggio:

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 

Aggiornamento: Credo di sapere il motivo per cui queste ultime due avvertimenti si avvicinò. In precedenza, ho provato a risolvere il problema della directory temporanea creando un collegamento simbolico a/tmp ma, se ho capito bene, PEAR sta cercando di creare la propria directory temporanea per l'installazione, quindi la cancellerà quando sarà finita. Quindi non avrei dovuto creare questo collegamento simbolico poiché cercherà di eliminare la directory temporanea al termine dell'installazione.

+0

Potrebbe descrivere il problema riscontrato? – hhafez

risposta

16

Qui ci sono alcune cose che potrebbero andare storte, queste sono solo supposizioni.

In primo luogo, c'è due include percorsi di cui avrai bisogno di preoccuparti. Il primo è il tuo percorso di inclusione di PHP. Le librerie PEAR sono (principalmente) solo codice PHP, appositamente impacchettato. Quando installi un modulo PEAR stai scaricando tutto il codice PHP necessario per quella libreria, e qualsiasi altra libreria PEAR sulla libreria che stai installando (scusa per quella frase, ma non sono sicuro che ci sia un modo migliore per dire quella). Questo include il percorso è impostato nei file php.ini (un file per la tua riga di comando php, un altro per yoru web server php, spesso lo stesso file).

Il secondo percorso include di cui preoccuparsi è il percorso UNIX/shell. Questo è il percorso in cui il tuo computer cercherà i comandi quando inserisci un comando da un terminale. Il comando "pera" è un comando da riga di comando.

Quindi, abbiamo bisogno di fare in modo che

  1. Il file php.ini per il tuo sito ha la directory PEAR nel suo percorso di inclusione
  2. Il file php.ini per l'applicazione a riga di comando php ha il directory PEAR nel suo percorso di inclusione
  3. l'applicazione shell (terminale, probabilmente BASH in siete su OS X) ha la directory PEAR nel suo percorso includere

Quindi, per il numero 1, inserire una pagina PHP su y il nostro server che include la funzione chiama

phpinfo(); 

Questo elencherà una serie di informazioni sul server. Cerca la posizione di php.ini. Apri questo file in un editor di testo, cerca la variabile include_path e aggiungi il percorso alla tua directory PEAR (non rimuovere gli altri percorsi, aggiungi solo il tuo).

Per il numero 2, eseguire quanto segue dalla riga di comando

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

Un grappolo di linee stamperà, cercare quello che dice qualcosa come "File di configurazione caricato". Apri questo file in un editor di testo, cerca la variabile include_path e aggiungi il percorso alla tua directory PEAR (non rimuovere gli altri percorsi, aggiungi solo il tuo).

Infine, ed è questo che penso sia il tuo problema, dobbiamo assicurarci che il comando della riga di comando della pera sia nel tuo percorso shell/bash. Questo è ciò che questo errore sta riferendosi ad

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

Ci dovrebbe essere un file nella propria home directory denominata '.bash_profile'. È un file nascosto, quindi non verrà mostrato nel Finder. Aprilo con un editor di testo. Se hai problemi perché questo è un file nascosto, usa l'editor pico della riga di comando. Ctrl-X salverà da pico

cd ~ 
pico .bash_profile 

Questo file viene eseguito dalla shell ogni volta che si apre una finestra di terminale. Aggiungiamo/usr/local/bin al tuo PATH, il che significa che quando tenti di eseguire un comando, il tuo computer cercherà il comando in questa cartella. Aggiungere la seguente riga alla parte inferiore del Bash_profile

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

Questo è, più o meno, l'equivalente di seguente codice PHP

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

Stai salvando/usr/local/bin come il primo posto delimitato da due punti per cercare il comando e quindi aggiungere il resto del percorso esistente. Dopo aver aggiunto quella linea, chiudere il terminale, ri-aprirlo e quindi digitare

pear 

Questo dovrebbe dare un elenco di comandi validi pero, ma ancora più importante vi farò sapere pera è nel tuo percorso .

Buona fortuna!

+0

Ricevo "comando non trovato". Ho saltato un passaggio? – Andrew

+0

Cosa succede quando si digita '/ usr/local/bin/pera'? –

+0

Sarebbe fantastico se potessi aggiungere la tua sintassi include_path php.ini. Ho ottenuto questo tipo di lavoro, ma sto ancora avendo alcuni problemi con include rottura. –

2

L'ho capito. Devi "correre" la pera.php dove si desidera pera installato, quindi è necessario eseguire sotto/usr/local se si vuole pera binario da installare sotto/usr/local/bin

:-)

0

utente "bryan kennedy" (sopra) ha voluto conoscere la sintassi per il cambiamento "include_path" necessario in "php.ini"

(ho avuto un problema simile al PO e ho appena risolto il problema con l'aiuto di questo post.)

la modifica a php.ini sarà simile a ...

include_path=".:/path_to_pear_dir/PEAR" 

questo è come appare quando si consente "go-pear.php" per effettuare la modifica ....

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