【问题标题】:PHP IMAP Installed but getting "Undefined function imap_open()" Error已安装 PHP IMAP 但出现“未定义的函数 imap_open()”错误
【发布时间】:2019-11-03 15:19:58
【问题描述】:

我正在尝试在弹性 beanstalk 环境中安装/启用 IMAP。 我安装了 IMAP 模块,如下面的命令所示(当通过 SSH 连接到 ec2 实例时)。

$ php -m | grep imap
PHP Warning:  Module 'imap' already loaded in Unknown on line 0 imap

不确定警告是否与我看到的错误有关,但无论如何,IMAP 正在加载。

但是,当我在我的 PHP 代码中调用 imap_open() 时,我得到了这个错误:

PHP 致命错误:未捕获错误:调用未定义函数 imap_open()

我查看了this answer,但它已经有将近 10 年的历史了,并且查看其他问题(herehere)这并不像在 Linux 上向 php.ini 文件中添加一行那么简单。

【问题讨论】:

  • php -m 不会告诉您是否编辑了正确的 php.ini(是的,不止一个 / 并且通常情况下:某些 SAPI 显然需要重新启动服务器)。
  • 安装后是否重启了服务器 httpd 或 apache2 服务?首先重新启动服务器并检查。
  • 我不确定您是否可以从 amazon-ec2 实例发送电子邮件...可能您必须使用他们的(“Amazon SES”)邮件服务提供商或类似服务提供商。
  • @YanDatsiuk 这是用于检索电子邮件。
  • 嗨@Kevin Rock。对不起 - 你是对的。您能否尝试从脚本中输出启用的模块。您可以尝试,例如: die(phpinfo());只是为了确保您正在查看来自 web 服务器使用的 php 的信息......因为当您运行“php -m”时 - 它是 CLI 中启用的模块的列表。然后你现在是否启用 imap。

标签: php amazon-ec2 imap amazon-elastic-beanstalk


【解决方案1】:

根据@Priyanka Sankhala 的评论,我重新启动了 httpd 服务,并且成功了。我以为我之前尝试过,但显然我只是以非root用户身份尝试过,所以我无法成功重启服务。 sudo 和重新启动服务允许 IMAP 工作。

【讨论】:

    猜你喜欢
    • 2020-08-08
    • 2012-03-28
    • 2021-10-14
    • 2014-02-19
    • 2023-01-28
    • 1970-01-01
    • 2017-06-29
    • 2020-03-26
    相关资源
    最近更新 更多