为PHP编译imap扩展的方法:首先安装“imap-open2007e”;然后下载源代码;接着准备好系统的“imap-open”环境;最后进入“./ext/extension/imap/”文件夹下执行“make”命令即可。

怎么为PHP编译imap扩展?

最近为项目增加了邮箱登陆的验证,本地测试OK,部署至服务器上提示 imap_open 为未定义函数,由此可知缺少了IMAP的PHP扩展。

解决办法,首先看官网的安装说明,原来需要提前安装 imap-open2007e 才行。从 ftp://ftp.cac.washington.edu/imap/ 的网站上下载了源代码,但是这个的安装却让我比较头疼,因为没有 configure 文件,也没有一个说明文档。参考了其他朋友的办法,使用了下面的方法:wget ftp://ftp.cac.washington.edu/mail/imap.tar.Z

tar zxf imap.tar.Z

cd imap-2007a

make lr5 PASSWDTYPE=std SSLTYPE=unix.nopwd IP6=4

echo "set disable-plaintext nil" > /etc/c-client.cf

mkdir /usr/local/imap-2007a

mkdir /usr/local/imap-2007a/include/

mkdir /usr/local/imap-2007a/lib/

chmod -R 077 /usr/local/imap-2007a

rm -rf /usr/local/imap-2007a/include/*

rm -rf /usr/local/imap-2007a/lib/*

rm -rf /usr/sbin/imapd

cp imapd/imapd /usr/sbin/

cp c-client/*.h /usr/local/imap-2007a/include/

cp c-client/*.c /usr/local/imap-2007a/lib/

cp c-client/c-client.a /usr/local/imap-2007a/lib/libc-client.a

他这个过程中 rm –rf 的过程,我觉得是防止这几个目录中有其他不必要的文件,所以创建了文件夹后,又做了一次删除操作。完成这个过程之后,系统的 imap-open 环境就准备好了,进行php扩展的安装。

我这里因为已经安装了PHP,而且我也不想重新编译整个环境,所以我只需要编译这个扩展就行。系统中的PHP为5.2.9版本,找到对应版本的源代码,进入 ./ext/extension/imap/文件夹下,执行下面的步骤:/usr/local/apache/bin/phpize

./configure --with-php-config=/usr/local/apache/bin/php-config --prefix=/usr/local/apache/ --with-imap=/usr/local/imap-2007e/ –with-imap-ssl

make

make install

完成后,在php的extension/no-debug-non-zts-xxx 下就能看到编译好的so文件,添加到 php.ini 中,重启服务器,就可以看到imap 模块启动了。

更多相关技术文章,请访问PHP中文网!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php imap配置,怎么为PHP编译imap扩展?相关推荐

  1. php imap配置,php中的自定义IMAP命令

    php中的java imap函数doCommand的替代方法是什么? 解决方法: 我已经切换到了zend imap. 它支持自定义命令和提取. 这解决了我的问题. require_once 'Zend ...

  2. php imap函数详解,Imap是什么意思,php imap 函数详解

    imap 的全名是 internet message access protocol,即网际网络信息存取协议,为美国史丹福大学 (stanford university) 在 1986 年开始研发的多 ...

  3. Sublime配置C和C++编译运行环境

    Sublime配置C和C++编译运行环境 最近在学习<深入理解计算机系统>,里面的代码是在Linux环境下的C语言编写,由于采用gcc编译环境,为方便本人学习,特在Windows环境下载了 ...

  4. 【Groovy】Groovy 扩展方法 ( 实例扩展方法配置 | 扩展方法示例 | 编译实例扩展类 | 打包实例扩展类字节码到 jar 包中 | 测试使用 Thread 实例扩展方法 )

    文章目录 一.扩展方法示例 二.实例扩展方法配置 三.编译实例扩展类 四.打包静态扩展类字节码到 jar 包中 五.测试使用 Thread 实例扩展方法 一.扩展方法示例 为 Thread 扩展 he ...

  5. 【Groovy】Groovy 扩展方法 ( 静态扩展方法配置 | 扩展方法示例 | 编译静态扩展类 | 打包静态扩展类字节码到 jar 包中 | 测试使用 Thread 静态扩展类 )

    文章目录 一.扩展方法示例 二.静态扩展方法配置 三.编译静态扩展类 四.打包静态扩展类字节码到 jar 包中 五.测试使用 Thread 静态扩展类 一.扩展方法示例 为 Thread 扩展 hel ...

  6. deepin终端编译c程序_C/C++知识点之Ubuntu / Debian / Deepin等 Sublime Text 3 配置C++环境(一键编译运行,格式化代码)...

    本文主要向大家介绍了 C/C++知识点之Ubuntu / Debian / Deepin等 Sublime Text 3 配置C++环境(一键编译&运行,格式化代码),通过具体的内容向大家展示 ...

  7. OpenCV配置(利用Source编译,并配置扩展库opencv_contrib)

    OpenCV配置(利用Source编译,并配置扩展库opencv_contrib) 1. 配置所需(以个人版本为准) 1.1 CMake下载 1.2 OpenCV Source下载 1.3 OpenC ...

  8. Kinectfusion开源实现_配置Kinfu环境_Cmake编译PCL点云库_Kinect3D重建

    Kinectfusion开源实现-配置Kinfu环境-Cmake编译PCL点云库 注: 1.此教程在win10_x64.VS2010_x86环境下,配置运行Kinfu.编译PCL点云库成功,其他环境也 ...

  9. OpenCV环境配置:Ubuntu18.04编译OpenCV4.2.0和contrib模块记录

    OpenCV环境配置:Ubuntu18.04编译OpenCV4.2.0和contrib模块记录 1.下载源码和安装依赖包 2.解压源码文件和配置路径 3.配置Cmake并编译OpenCV 4.导入Op ...

最新文章

  1. 拦截锚点修改url_前端系列课程(2)-网络基础概念(URL)
  2. vs cmake opencv 远程 ubuntu 开发时:vs代码出现紫色波浪线且报错怎么办?
  3. 用NSubstitute来mock
  4. 在ASP.NET Core中使用百度在线编辑器UEditor
  5. *【CodeForces - 280C】Game on Tree(期望模型,期望的线性性)
  6. mAP提升40%!YOLO3改进版—— Poly-YOLO:更快,更精确的检测和实例分割
  7. 游戏安全报告(2017 - 2018全年)
  8. 设计模式(八)组合模式 Composite
  9. 批量激活管理工具VAMT 3.0的安装与基本使用方法简介
  10. 大众mpv_最便宜的大众MPV来啦!1.4T6AT,空间比宝骏730还宽裕
  11. JDBC中PreparedStatement接口的执行逻辑
  12. 【实习周记】ArrayMap源码分析
  13. 编译器设计(二)——上下文无关文法及推导
  14. 计算机硬盘换,电脑硬盘可以随便换吗
  15. java微信开发需具备的条件
  16. Unity3D占用内存太大怎么解决呢? -尾
  17. Java 过滤器Url通配符处理
  18. 什么是嵌入式系统,什么是单片机?
  19. 日语自学学习网站汇总
  20. 零基础软件测试培训都学什么

热门文章

  1. 如何基于 Notadd 构建 API (Laravel 写 API)
  2. Nagios 安装及常见错误
  3. SQL Server replication requires the actual server name to make a connection to the server.错误解决...
  4. Cisco Nexus 1000V
  5. android触摸消息的派发过程
  6. Keras框架:resent50代码实现
  7. leetcode 228. 汇总区间
  8. javascript初学者_针对JavaScript初学者的调试技巧和窍门
  9. gitlab设置邮件服务器_如何设置您自己的一次性电子邮件服务器
  10. 如何使用React Native构建嵌套的抽屉菜单