webentwicklung-frage-antwort-db.com.de

Hinzufügen von IMAP zu PHP 7.2 unter OSX

Ich verwende PHP 7.2 unter OS X El Capitan, das natürlich mit Homebrew installiert wird. Nun möchte ich einige IMAP-Funktionen aus der PHP-IMAP-Erweiterung verwenden, aber egal was ich suche, ich kann keine Erweiterung für OSX finden.

Einige Dinge, die ich ausprobiert habe ... Ich habe natürlich den am häufigsten empfohlenen Ansatz ausprobiert:

$ brew reinstall php --with-imap

Dies schlägt jedoch fehl und kehrt zurück:

Warning: php: this formula has no --with-imap option so it will be ignored!

Eine andere Methode, die ich nebenbei erwähnt habe, scheitert auch:

$ brew install php72-imap

Error: No available formula with the name "php72-imap" 
==> Searching for a previously deleted formula (in the last month)...
Warning: homebrew/core is shallow clone. To get complete history run:
  git -C "$(brew --repo homebrew/core)" fetch --unshallow

Error: No previously deleted formula found.
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
==> Searching taps...
==> Searching taps on GitHub...
Error: No formulae found in taps.

Ich weiß nicht genau, in welche Richtung ich gehen soll. Ich bin sicher, dass es einen einfachen, wahrscheinlich dokumentierten Weg gibt, aber ich muss ihn noch finden. Vielleicht schaue ich nur an den falschen Stellen und verwende falsche Suchbegriffe ...

4
laef

Kevin Abel bietet einige der Erweiterungen von PHP aus Homebrew/core Sie können die IMAP-Erweiterung installieren mit: 

brew tap kabel/php-ext
brew install php-imap
5
Ortomala Lokni

Diese Antwort ist für diejenigen gedacht, die es vorziehen, imap ext mit nativen Befehlen zu installieren, ohne weitere Taps oder ähnliches hinzuzufügen.

Kurz gesagt, wir müssen die Erweiterung aus den Quellen kompilieren. Ok, hier ist der Prozess.

$ # Download sources from php.net of already installed php version. 
$ cd ~/Downloads
$ wget https://www.php.net/distributions/php-7.3.5.tar.gz
$ gunzip php-7.3.5.tar.gz
$ tar xvf php-7.3.5.tar
$ # Go to ext dir 
$ cd php-7.3.5/ext/imap
$ # prepare extension using phpize command, you should 
$ # ensure that you use phpize of proper version from 
$ # already installed php version as checking the API version for example
$ phpize
$ # prepare dependencies
$ # install openssl and imap
$ brew install openssl
$ brew install imap-uw
$ # after all installation check the installed paths of the exts
$ ./configure --with-kerberos --with-imap-ssl=/usr/local/Cellar/openssl/1.0.2r/ --with-imap=/usr/local/Cellar/imap-uw/2007f/
$ make
$ # get extension dir 
$ php -i | grep extension_dir
extension_dir => /usr/local/lib/php/pecl/20180731 => /usr/local/lib/php/pecl/20180731
$ cp modules/imap.so /usr/local/lib/php/pecl/20180731/
$ # add extension to your php.ini
# [imap]
# extension="imap.so"

Das ist es. Sei glücklich!

3
wtorsi

Für diejenigen, die Probleme mit Mojave haben, habe ich das Repository gegabelt und es mit folgendem behoben: brew tap v1shky/php-ext

1
Vishal Sancheti

So habe ich dieses Problem unter Mojave gelöst:

Zuerst habe ich das IMAP-Modul für PHP 7.2 installiert

brew install kabel/php-ext/[email protected]

Zweitens habe ich imap.so aus dem installierten Ordner in das von php.ini verwendete 'extension_dir' kopiert

Sudo cp /usr/local/lib/php/20170718/imap.so to /usr/local/lib/php/pecl/20170718
1
Alex