2012-06-22 14 views
5

ho voluto l'ultima versione di PHP per lavorare con su una nuova Macbook, ma l'installazione di PHP non comprende le funzioni IMAP per impostazione predefinita. C'è una funzione specifica che ho bisogno - vale a dire la funzione "imap_rfc822_parse_headers", ma non mi sento come la ricompilazione, la costruzione e l'installazione di PHP (per non parlare lo sforzo necessario per l'installazione c-client e imap.so anticipo) solo per questo . Temo che le procedure contorte (di cui ciascuna che ho trovato sia in qualche modo diversa) potrebbe rovinare la mia attuale installazione che non era affatto facile da configurare.Uso delle funzioni IMAP in PHP senza ricostruire e reinstallare

C'è un altro modo, più semplice di installare IMAP in PHP? Su una nota correlata, c'è forse un'alternativa basata sulla classe alla funzione di cui ho bisogno?

risposta

11

ho finalmente trovato la soluzione. La maggior parte era qui: http://www.september28.co.uk/blog/2011/11/24/php-imap-support-in-mac-os-x-lion-without-recompiling-php/

La mia macchina è un Macbook Pro di fine 2011 con MacOSX 10.7.4, PHP 5.4. installato tramite le seguenti istruzioni: http://www.hirmet.com/mac-os-x-lion-upgrade-to-php-5-4

Ecco uno step-by-step per chi ha una configurazione simile o identico:

scaricare il sorgente imap da questo URL, concentrarsi su quello con la data più recente, che doesn' end t in "Z": ftp://ftp.cac.washington.edu/imap/

Annulla archiviazione, andare nella cartella, eseguire i seguenti comandi:

$ make osx EXTRACFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" 

il comando precedente gettare un po 'di avvertimenti a voi, ma dovrebbe completare con successo, a differenza del comando originariamente suggerito nel post del blog di settembre28.

Avanti, effettuare le seguenti operazioni:

$ sudo cp c-client/*.h /usr/local/include/ 
$ sudo cp c-client/*.c /usr/local/lib/ 
$ sudo cp c-client/c-client.a /usr/local/lib/libc-client.a 

Una volta fatto questo, andare nella cartella di origine php scaricato se hai fatto un aggiornamento personalizzato come ho fatto io (come per il secondo link nella risposta) e costruire l'estensione imap.so per il tuo sistema. Se non hai creato una versione personalizzata, scarica il codice sorgente PHP per la versione che hai installato e, se lo usi, non importa.

$ cd ~/Downloads/Php-5.4.4/ext/imap 
$ phpize 
$ ./configure --with-imap==/usr/local/imap-2007 --with-kerberos --with-imap-ssl 
$ make 

Una volta fatto, effettuare le seguenti operazioni:

$ sudo cp modules/imap.so /usr/lib/php/extensions/no-debug-non-zts-20100525/ 

... o se la cartella estensione PHP è diverso, mettere che (si può vedere la posizione in phpinfo();)

Riavvia apache e dovresti essere pronto per partire.

$ sudo apachectl restart 
+0

Quando provo a fare: fare osx EXTRACFLAGS = "- arch i386 -arch x86_64-g -Os -pipe -no-cpp-precomp" sul mio OS X Mountain Lion, ottengo questo errore: - bash: $: comando non trovato Cosa devo fare per procedere in avanti? –

+0

ometti $ da ogni comando che scrivi, questo è solo il simbolo di input di bash. – Swader

+0

Ho dovuto fare un ulteriore passaggio, nel mio php.ini ho dovuto aggiungere l'estensione manualmente. $ Sudo nano php.ini -> Ricerca per le estensioni dinamici -> aggiungi extension = "/ usr/lib/php/extensions/non-debug-non-zts-20100525/imap.so" -> salvare e uscire -> apache restart di nuovo – jolyonruss