2012-06-22 6 views
5

Ich wollte die neueste PHP-Version mit einem neuen Macbook arbeiten, aber die PHP-Installation enthält standardmäßig keine IMAP-Funktionen. Es gibt eine bestimmte Funktion, die ich brauche - nämlich die Funktion "imap_rfc822_parse_headers", aber ich habe keine Lust, PHP neu zu kompilieren, zu bauen und zu installieren (ganz zu schweigen von dem Aufwand, den es braucht, um c-client und imap.so vorher zu installieren) . Ich befürchte, dass die verworrenen Prozeduren (von denen jedes einzelne etwas anders ist) meine aktuelle Installation, die auf keinen Fall einfach einzurichten war, durcheinander bringen könnte.Verwendung von IMAP-Funktionen in PHP ohne Neuaufbau und Neuinstallation

Gibt es eine andere, einfachere Möglichkeit, imap in PHP zu installieren? Gibt es vielleicht eine klassenbasierte Alternative zu der Funktion, die ich brauche?

Antwort

11

Ich habe endlich die Lösung gefunden. Das meiste davon war hier: http://www.september28.co.uk/blog/2011/11/24/php-imap-support-in-mac-os-x-lion-without-recompiling-php/

Meine Maschine ist ein Ende 2011 Macbook Pro mit MacOSX 10.7.4, PHP 5.4. installiert über diese Anweisungen: http://www.hirmet.com/mac-os-x-lion-upgrade-to-php-5-4

Hier ist eine Schritt-für-Schritt für die mit einem ähnlichen oder identischen Aufbau:

von dieser URL die imap Quelle herunterladen, konzentrieren sich auf den mit dem jüngsten Datum, die ‚doesn t Ende in „Z“: ftp://ftp.cac.washington.edu/imap/

Unarchive, gehen in den Ordner, führen Sie die folgenden Befehle:

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

der obige Befehl eine Reihe von Warnungen auf dich werfen, aber sollte erfolgreich abgeschlossen haben, im Gegensatz zu den Befehl ursprünglich im Blogpost september28 vorgeschlagen.

Als nächstes gehen Sie wie folgt:

$ 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 

Sobald dies erledigt ist, gehen Sie in den Ordner php Quelle heruntergeladen, wenn Sie eine maßgeschneiderte Upgrade wie ich (nach dem zweiten Glied in der Antwort) tat und bauen die Erweiterung imap.so für Ihr System. Wenn Sie keine benutzerdefinierte Version erstellt haben, laden Sie einfach die PHP-Quelle für die von Ihnen installierte Version herunter und verwenden Sie diese, das spielt keine Rolle.

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

Ist das erledigt, gehen Sie wie folgt vor:

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

... oder wenn die PHP-Erweiterung Ordner unterscheidet, setzen, dass (Sie die Lage in phpinfo sehen können();)

Starten Sie Apache neu und Sie sollten bereit sein zu gehen.

$ sudo apachectl restart 
+0

Wenn ich versuche zu tun: machen osx EXTRACFLAGS = "- arch i386 -arch x86_64 -g -Os -pipe -no-CPP-precomp" auf meinem OS X Mountain Lion, bekomme ich diesen Fehler: - bash: $: Befehl nicht gefunden Was soll ich tun, um weiter zu machen? –

+0

Lassen Sie das $ aus jedem eingegebenen Befehl weg, das ist nur das Bash-Eingabe-Symbol. – Swader

+0

Ich musste einen extra Schritt machen, in meiner php.ini musste ich die Erweiterung manuell hinzufügen. $ sudo nano php.ini -> Suche nach dynamischen Erweiterungen -> add extension = "/ usr/lib/php/Erweiterungen/no-debug-non-zts-20100525/imap.so" -> speichern und beenden -> Apache neu starten wieder – jolyonruss

Verwandte Themen