在 PHP 中使用 imap 函数,无需重建和重新安装


Using imap functions in PHP without rebuilding and reinstalling

我希望最新的PHP版本可以在新的Macbook上使用,但默认情况下,php安装不包括imap函数。我需要有一个特定的函数 - 即"imap_rfc822_parse_headers"函数,但我不想为此重新编译、构建和安装 PHP(更不用说事先安装 c-client 和 imap.so 所需的努力)。我担心复杂的过程(我发现的每个程序都有些不同)可能会弄乱我当前的安装,这绝不容易设置。

有没有其他更简单的方法将 imap 安装到 PHP 中?在相关的说明中,是否有我需要的函数的基于类的替代方案?

我终于找到了解决方案。大部分都在这里:http://www.september28.co.uk/blog/2011/11/24/php-imap-support-in-mac-os-x-lion-without-recompiling-php/

我的机器是2011年末的Macbook Pro,MacOSX 10.7.4,PHP 5.4。 通过以下说明安装:http://www.hirmet.com/mac-os-x-lion-upgrade-to-php-5-4

以下是具有相似或相同设置的用户的分步说明:

从此网址下载 imap 源,重点关注最近日期不以"Z"结尾的源:ftp://ftp.cac.washington.edu/imap/

解压缩,进入文件夹,运行以下命令:

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

上面的命令会向你抛出一堆警告,但应该成功完成,这与 9 月 28 日博客文章中最初建议的命令不同。

接下来,执行以下操作:

$ 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

完成此操作后,如果您像我一样进行了自定义升级(根据答案中的第二个链接),请进入下载的 php 源文件夹并为您的系统构建 imap.so 扩展。如果您没有构建自定义版本,只需下载已安装版本的 PHP 源代码,然后使用它,没关系。

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

完成后,请执行以下操作:

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

。或者如果你的 PHP 扩展文件夹不同,把它放(你可以在 phpinfo();

重新启动 apache,您应该准备好了。

$ sudo apachectl restart