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

时间:2018-04-04 04:59:52

标签: macos nginx homebrew php-7

31st of March Homebrew moved some of their formulas around上。出于这个原因,我无法找到一种方法来使我的PHP 7使用以下扩展:

mailparse
imap

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

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

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

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

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

是否有任何人遇到此问题并且能够修复它?

谢谢!

1 个答案:

答案 0 :(得分:6)

经过一些故障排除后,它终于奏效了.....那就是我的表现:

首先我安装了以下公式:

brew install imap-uw
brew install openssl

之后,我在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

其中/usr/local/Cellar/是安装公式imap-uw的路径。

P.S 此配置文件不接受--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

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

即可
extension="/usr/local/opt/php70-imap/imap.so"

重新启动服务器,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

我在这里得到了一段代码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"