在Mac OS上使用IMAP和MAILPARSE的PHP 7.0

Wel*_*iro 4 macos homebrew nginx php-7

331日,Homebrew移动了一些公式.出于这个原因,我无法找到一种方法来使我的PHP 7使用以下扩展:

mailparse
imap
Run Code Online (Sandbox Code Playgroud)

我尝试了很多在互联网上找到的例子,比如

  • brew安装php70 --with-imap
  • brew install -s php70 --with-imap
  • brew安装php70-imap

没有想到的 brew update, brew upgrade, brew tap etc...

但它们似乎都不起作用,因为brew不再适用于选项.

我在没有自制软件的情况下尝试安装的选项更少,因为我nginx在计算机中使用,而不是apache.

有没有人有这个问题,并能够解决它?

谢谢!

Wel*_*iro 6

经过一些故障排除后,它终于奏效了.....我就这样做了:

首先我安装了以下公式:

brew install imap-uw
brew install openssl
Run Code Online (Sandbox Code Playgroud)

之后,我在http://php.net/downloads.php上下载了相同版本的pho在我的电脑上运行(保存在Downloads文件夹中).

在终端我做了.

cd ~/Downloads/php-7.0.29/ext/imap
./configure --with-imap=/usr/local/Cellar/imap-uw/2007f --with-kerberos --with-imap-ssl=/usr/local/opt/openssl
make
Run Code Online (Sandbox Code Playgroud)

其中/usr/local/Cellar/是安装式IMAP-UW的路径.

PS此配置文件不接受--with-openssl--with-openssl-dir+openssl.我试着用这么多时间.

它创建了一个包含文件modules/imap.so文件夹.

然后我创建了一个文件夹并将imap文件移到其中

mkdir /usr/local/opt/php70-imap
mv modules/imap.so /usr/local/opt/php70-imap/imap.so
Run Code Online (Sandbox Code Playgroud)

之后,只需将扩展名添加到php.ini文件中

extension="/usr/local/opt/php70-imap/imap.so"
Run Code Online (Sandbox Code Playgroud)

重启服务器,imap将正常工作!

对于mailparse,我不得不使用pecl.

首先我按照本教程https://jason.pureconcepts.net/2012/10/install-pear-pecl-mac-os-x/

pecl在我的计算机中正确安装后,我运行了以下代码:

cd
pecl download mailparse
tar -xvf mailparse-3.0.2.tgz 
cd mailparse-3.0.2/
phpize
./configure
sed -i 's/#if\s!HAVE_MBSTRING/#ifndef MBFL_MBFILTER_H/' ./mailparse.c
make
mkdir /usr/local/opt/php70-mailparse
sudo mv modules/mailparse.so /usr/local/opt/php70-mailparse/mailparse.so
Run Code Online (Sandbox Code Playgroud)

我在这里得到了一段代码https://github.com/php-mime-mail-parser/php-mime-mail-parser.但该线路sed -i 's/#if\s!HAVE_MBSTRING/#ifndef MBFL_MBFILTER_H/' ./mailparse.c无法正常工作.我跑了make然后它运作了.

之后,只需将扩展名添加到php.ini文件中

extension="/usr/local/opt/php70-mailparse/mailparse.so"
Run Code Online (Sandbox Code Playgroud)