2013-03-07 13 views
6

Quindi eseguo MAMP su Mountain Lion e ho installato gmagick e imagick utilizzando pecl, entrambi sono candidati relase (principalmente perché gmagick non ha una versione stabile e imagick 3.0.0 non funziona installare, dà un errore di fabbricazione). I moduli appaiono quando eseguo php -i nel terminale ma non in phpinfo(), ho controllato php.ini è lo stesso per entrambi, quindi non è questo il problema.Tuttavia ho installato bitset (che è una versione stabile) e appare in phpinfo() e php -i. Quindi la mia domanda è: PHP ha qualche opzione di configurazione che non carica estensioni se non sono stabili? A proposito, ho riavviato il mio server dopo le modifiche al file ini.estensioni PHP non caricate in phpinfo

+1

avete controllato il file ini php nella directory di Apache? –

risposta

6

Probabilmente ora avrai due installazioni di php sul tuo computer. Mountain Lion viene fornito con una versione php preinstallata. Prova a locate php.ini nel terminale per scoprire quanti php.inis sono installati.

Nella pagina phpinfo() viene anche indicato quale php.ini è in uso. Potresti voler aprire il php.ini esatto che è usato per il tuo phpinfo() e assicurarti che le estensioni siano caricate. Ci dovrebbero essere due righe come extension=/path/to/gemagicext/gmagic.so extension=/path/to/imagick/imagick.so

+0

sì, quando eseguo phpinfo() mi mostra quale php.ini sto usando (quello corretto) ed è lo stesso del php.ini che ottengo quando eseguo php -i nella console, quindi questo non è il problema – Vidi

0

Sono sicuro che questo problema è correlato all'estensione e alla compatibilità del server PHP. Ho riscontrato tali problemi quando ho creato le mie estensioni. La tua estensione dovrebbe essere compatibile con il tuo server PHP in tre attributi principali:

1- Il numero dell'API di Zend con cui è configurato il tuo server PHP (in phpinfo() puoi trovare questo numero), questo numero dovrebbe essere lo stesso con il tuo file di intestazione estensione al momento della compilazione.

2- La versione del compilatore sul server PHP e l'estensione devono essere uguali.

3- La sicurezza del thread nel server PHP è importante. Se si utilizza un server thread-safe, l'estensione deve essere costruita con la libreria php thread-safe e se si utilizza un server non thread-thread, è necessario creare l'estensione con la libreria PHP-nts.

4

Ho riscontrato un problema simile con php-fpm e nginx server. Il problema era dovuto al fatto che la configurazione di php aggiornata non si rifletteva negli attuali processi di lavoro attivi di php-fpm. Devo manualmente killare il processo fpm e riavviarlo di nuovo per avere le estensioni aggiornate.

Passi che ha funzionato per me:

1) Cercare attiva processo di php-fpm

ps ax | grep "fpm" 

per lo più questo elencherà più di un processo

2) uccidere processo manualmente

kill -9 [pid_got_from_previous_command] 

3) riavviare il processo php-fpm

sudo service php5-fpm start 

Nota: Cercando qualcosa di simile sudo service php-fpm reload o sudo service php-fpm restart non ha funzionato dal momento che i vecchi processi figli mantenuto la vecchia configurazione. Uccidere i processi attivi e riavviare php fpm cosa ha aggiornato il phpinfo per me.

+0

Hai ragione. Un'altra soluzione è riavviare il server, ma la soluzione è migliore. (nessun tempo morto) –

2

Ho avuto lo stesso problema CentOS 6.6 x64, php 5.5.27 e ho seguito i passi da http://php.net/manual/en/imagick.installation.php

Prima di tutto scaricare un immagine di catrame del ImageMagick installazione da qui: sourceforge.net/projects/imagemagick/files/

Estrarre e poi dal problema del terminale seguenti comandi:

1. "cd ImageMagick-6.9.1-10" - go where you placed the folder 
2. ./configure 
3. make 
4. make install 
5. make check 
6. install imagick extension from pecl.php.net/package/imagick/download 3.1.2 
7. cd imagick-3.1.2 
8. phpize 
9. ./configure --with-imagick=/opt/local 
10. make 
11. make install 
12. Copy imagick.so in your PHP extensions folder and add extension=imagick.so in php.ini 

Riavviare apache: service httpd restart

Problemi correlati