【问题标题】:Attempted to call function "imap_open" from namespace试图从命名空间调用函数“imap_open”
【发布时间】:2018-01-10 01:41:21
【问题描述】:

我创建了一个解析 IMAP 邮箱的 Symfony 命令。 IMAP 扩展程序已安装并启用。

当我执行命令时出现此错误:

[Symfony\Component\Debug\Exception\UndefinedFunctionException]
  Attempted to call function "imap_open" from namespace "CAB\MainBundle\Imap".

但是通过浏览器,我没有这个错误,imap_open 执行没有错误。

为什么imap_open从控制台执行时不存在?

【问题讨论】:

  • 检查你的php cli配置,好像没有为cli启用扩展。
  • 扩展为 apache 和 CLI 启用:extension=imap.so in /etc/php/5.6/cli/conf.d/20-imap.ini

标签: symfony console imap php-5.6


【解决方案1】:

在服务器中,安装了两个 PHP 版本:PHP5.6 和 PHP7IMAP 扩展在 PHP 5.6 中启用,但在 PHP 7 中未启用。 因此,当我使用 php app/console parse:mailbox 运行命令时,它会调用 PHP7 并且由于未为 PHP7 启用 imap 扩展,因此代码会引发 UndefinedFunctionException 异常

正确的方法是用php5.6执行命令

php5.6 app/console parse:mailbox

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-12
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 2018-01-16
    • 2016-11-07
    • 1970-01-01
    相关资源
    最近更新 更多