【问题标题】:PHP Imap , php 7.4.3 on mac osx catalinaPHP Imap , php 7.4.3 on mac osx catalina
【发布时间】:2020-06-20 19:55:45
【问题描述】:

这正式把我逼疯了!我正在尝试为 imap 函数使用 laravel 包,并且我已经在那里安装了所有东西,但是我收到了 imap_open 的缺失类错误

我知道这意味着 imap 模块在 php 级别没有安装,或者有问题。

我已将 php.ini 文件编辑为具有 extension=imap,现在当我从终端 CLI 运行任何 php 命令时,我得到 PHP Warning: PHP Startup: Unable to load dynamic library 'imap' (tried: /usr/local/lib/php/pecl/20190902/imap (dlopen(/usr/local/lib/php/pecl/20190902/imap, 9): image not found), /usr/local/lib/php/pecl/20190902/imap.so (dlopen(/usr/local/lib/php/pecl/20190902/imap.so, 9): image not found)) in Unknown on line 0

当我导航到 user/local/lib/php 时,我有一个 7.4 文件夹,其中我有一个 conf.d 文件夹、pear.conf 文件、php-fpm.consf 文件、php-fpm.d 文件夹和php.ini 文件

此时我需要做什么?

【问题讨论】:

  • @num8er 是的,我做到了,我能够将 imap.so 文件移动到本地文件夹并取消注释 php.ini 文件中的文件。仍然在此项目的目录中键入 php -m 不显示 imap
  • 似乎 php -v 会显示它与 7.4 不同
  • @num8er 好的,如果我运行 php-v 它会显示版本 7.3.9,但在此之前我收到启动错误,使用code signature in (/usr/local/lib/php/pecl/20190902/imap.so) not valid for use in process: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.)) in Unknown on line 0加载动态库“imap”
  • imap.so 你说的我不知道是哪个版本的php。但我建议将其从 pecl 文件夹中删除(如果再次出现,则从配置中删除)。然后只需在下面的答案中执行步骤,我已经在本地完成并且可以正常工作。

标签: php imap


【解决方案1】:

我已经尝试了所有的事情。但是,没有任何效果。最后,我得到了 Shivammathur git brew 扩展 -

用于 PHP 扩展的 Homebrew tap - https://github.com/shivammathur/homebrew-extensions

为 php 7.4 安装 imap 扩展的过程 -

获取 PHP 7.4 和扩展:

brew tap shivammathur/php
brew install shivammathur/php/php@7.4
brew link --force --overwrite php@7.4
brew tap shivammathur/extensions

立即获取任何扩展程序,例如 imap

brew install imap@7.4

之后,我可以在我的机器上完美启用php-imap。希望,它会帮助别人。

【讨论】:

    【解决方案2】:

    是时候更新包了。我们需要 php@7.4-imap(实际上它是加载 php-8.0.0 源代码的 php-imap 的别名。

    【讨论】:

      【解决方案3】:

      我已将我的 7.3 升级到 7.4 并添加了 pecl 中不存在的 imap 扩展。

      所以步骤是:

      1) brew update

      2) brew upgrade php

      3)sudo rm /usr/local/lib/php/pecl/20190902/imap.so

      4) brew tap kabel/php-ext

      5)brew install php-imap

      6) php -m | grep imap

      【讨论】:

      • 好的,我完全按照这些步骤完成了。最后一步给了我PHP Warning: PHP Startup: Unable to load dynamic library 'imap' (tried: /usr/local/lib/php/pecl/20190902/imap (dlopen(/usr/local/lib/php/pecl/20190902/imap, 0x0009): dlopen(): file not found: /usr/local/lib/php/pecl/20190902/imap), /usr/local/lib/php/pecl/20190902/imap.so (dlopen(/usr/local/lib/php/pecl/20190902/imap.so, 0x0009): dlopen(): file not found: /usr/local/lib/php/pecl/20190902/imap.so))
      • 然后当我立即在命令行中运行 php-v 我得到 7.3.9
      • 我在您的回答中执行了 sudo rm 步骤,但是当我在命令行中运行 php --ini 时,它仍然显示它正在使用的配置文件位于 /etc/php.ini
      • 好的,我从该文件中删除了 extension=imap,现在 php -m | grep imap 什么都不返回
      • 谢谢。我在我的大苏尔上使用 shivammatur。点击 shivammatur 扩展并没有解决我的问题,但你的回答解决了
      猜你喜欢
      • 1970-01-01
      • 2021-09-20
      • 2021-02-08
      • 1970-01-01
      • 2018-12-28
      • 1970-01-01
      • 2013-01-31
      • 1970-01-01
      • 2020-09-29
      相关资源
      最近更新 更多