将模块添加到自定义编译的 PHP

将模块添加到自定义编译的 PHP

在 CentOS 中,我有一个编译版本的 PHP,但缺少 IMAP 模块。是否可以在不重新编译 php 的情况下添加该模块?

答案1

是的,您可以直接下载当前版本的源代码,解压它,转到解压后的源代码的 ext/imap 目录,然后运行:

phpize
./configure
make

您可能需要运行 ./configure 并指定一些使用的 imap 库的选项,例如:

  --with-imap=DIR       Include IMAP support. DIR is the c-client install prefix
  ...
  --with-imap-ssl=DIR     IMAP: Include SSL support. DIR is the OpenSSL install prefix

编译模块后,您应该将其放置在 ext/imap/modules 下,其名称应为 imap.so,例如 ext/imap/modules/imap.so。您需要将其进一步移动到 extension_dir 目录,您可以通过运行php -i | grep extension_dir或创建一个 php 文件来获取该目录,该文件<?php phpinfo(); ?>将从 Web 界面中显示并运行它,然后在结果页面上搜索 extension_dir。

移动模块文件后,您需要在 php.ini 文件中添加一行(或在附加 .ini 文件目录中创建一个 .ini 文件),内容如下:

extension=imap.so

之后,如果您使用 php-fpm,则需要重新启动 web 服务器或 php-fpm 服务。

相关内容