对于使用Ubuntu并且完全害怕编译的用户来说,在Ubuntu下很容易
安装libc-client-dev
# sudo apt-get install libc-client-dev
安装PHP5 imap
# sudo apt-get install php5-imap
重启Apache
# sudo service apache2 reload
应该对大多数人有效。
此扩展需要安装c-client库。从 » https://github.com/uw-imap/imap 获取最新版本并编译它。
重要的是,不要直接将IMAP源文件复制到系统include目录中,因为可能会发生冲突。相反,在系统include目录内创建一个新目录,例如 /usr/local/imap-2000b/(位置和名称取决于您的设置和IMAP版本),然后在这个新目录中创建名为 lib/ 和 include/ 的附加目录。从IMAP源代码树中的 c-client 目录中,将所有 *.h 文件复制到 include/ 中,并将所有 *.c 文件复制到 lib/ 中。此外,在编译IMAP时,会创建一个名为 c-client.a 的文件。也将其放入 lib/ 目录中,但将其重命名为 libc-client.a。
注意:
要使用SSL或/和Kerberos支持构建c-client库,请阅读软件包提供的文档。
注意: 在Mandrake Linux中,IMAP库(libc-client.a)在没有Kerberos支持的情况下编译。安装了具有SSL支持的单独版本(client-PHP4.a)。必须重新编译库才能添加Kerberos支持。
对于使用Ubuntu并且完全害怕编译的用户来说,在Ubuntu下很容易
安装libc-client-dev
# sudo apt-get install libc-client-dev
安装PHP5 imap
# sudo apt-get install php5-imap
重启Apache
# sudo service apache2 reload
应该对大多数人有效。
应该注意的是,华盛顿大学的源代码存档及其镜像已经失效一段时间了。
这里有一个github仓库:https://github.com/uw-imap/imap
Red Hat Enterprise Linux 7和8中都无法使用php-imap包。
要自己编译扩展
前提条件
# yum install pam-devel openssl-devel
按照前面“ldi at email dot cz”的帖子的步骤2和3进行操作
从github下载c-client库,您可以在页面顶部看到链接,并使用以下命令编译:
# make lr5 SSLINCLUDE=/usr/include/openssl/ EXTRACFLAGS=-fPIC
(如果您使用的是其他发行版,则不要使用lr5,您可以查看Makefile以了解其他unix版本)
按照前面“ldi at email dot cz”帖子的步骤5进行操作,这就是页面顶部第二段所解释的内容。
下载系统中安装的PHP源代码版本,然后转到php/ext/imap文件夹。
# phpize
(如果您从Red Hat Software Collections安装了PHP包,则必须在设置环境之前运行以下命令,例如:scl enable rh-php73 bash)
# ./configure --with-imap=<<c-client库解压和编译的路径>> --with-imap-ssl
# make
这将创建文件php/ext/imap/modules/imap.so :)
将其复制到您的extension_dir(您可以在phpinfo()页面中找到它)。
在php.d文件夹中创建一个.ini文件,其中包含文本:extension=imap.so
重启apache,开心吧。
附注:您可能可以在那里找到已编译的扩展,但是谁知道其来源的可信度,因此最好获取官方的未经修改的源代码。
最初也是由华盛顿大学的Mark Crispin开发的Alpine电子邮件客户端也使用“c-client”库,并且它仍在由Eduardo Chappa积极开发:https://alpineapp.email/alpine/release/。它有自己的更新的“c-client”库副本,支持OAuth2身份验证等新功能。
可以通过https://github.com/uw-imap/imap/commits/master/src/c-client和https://repo.or.cz/alpine.git/history/HEAD:/imap/src/c-client比较UW IMAP和Alpine“c-client”库的开发。
如果此PHP扩展不适用于Alpine“c-client”,那么有人可能需要移植PHP使其适用。