【问题标题】:Enable MCrypt using MAMP使用 MAMP 启用 MCrypt
【发布时间】:2017-07-19 04:32:51
【问题描述】:

我正在使用 MAMP 并且我安装了新版本的 Opencart,当我转到终端并输入时,它告诉我我没有启用 MCrypt:

php -m | grep mcrypt
output: mcrypt

我可以找到该库,但它似乎没有启用。

【问题讨论】:

  • 我不认为我可以使用 2014 年的答案,我们现在使用 php 7,谢谢 :)
  • “我可以找到该库,但它似乎没有启用” – 那么启用它...?您为实现这一目标做了什么尝试,结果如何?
  • @CBroe 我不知道如何启用它,我不擅长服务器配置和库扩展。我查看了 php ini 文件,只能找到一次“extension=mcrypt.so”
  • 不要在这里发帖,你应该查看它的文档

标签: php terminal mamp mcrypt


【解决方案1】:

php -m | grep mcrypt 返回mcrypt 的事实意味着 mcrypt 库已安装并已启用。

虽然它可能只是为 CLI 启用。

您可以尝试编辑 PHP.ini 文件并在 ; Extensions 部分下添加以下行:

extension=mcrypt.so

保存 php.ini 文件后重启 Apache/MAMP。

要找到要编辑的正确php.ini 文件,请运行以下命令行:

php --info | grep php.ini

(如果该行已经存在,您可能只需要删除它前面的;。)

【讨论】:

  • Opencart 未检测到启用gyazo.com/3917b79c77579b3e2edb5fc7d523b33c
  • 答案更新。发帖太快了!编辑 .ini 文件后重新启动 MAMP。
  • "extension=mcrypt.so" 一直在 ini 文件中,这就是为什么我没有得到它,我已经重新启动了多次没有效果,它没有分号之后。
  • 您的系统可能有多个正在使用的 php.ini 文件。运行 php --info | grep php.ini 并确保已编辑正确的 php.ini 文件以启用 mcrypt。
  • 在您通过 HTTP(不是命令行)调用的脚本文件中使用 phpinfo(),并检查实际使用 php.ini 的标头,以确认您正在编辑正确的标头。
【解决方案2】:

我在升级到 MAMP 5.1 并使用 PHP 7.1.20 后遇到了这个问题...

我发现的问题不是 MAMP PHP 没有安装 mcrypt,它肯定是捆绑的。

问题是 MAMP PHP 配置选项“Make this version available on the command lineNOT工作,所以我在命令行 [在我的例子中] 是没有 mcrypt 的 macOS 默认 PHP 7.1.16(默认包含在 macOS 中的版本)

恢复到旧的 cli php 别名意味着在命令行上使用了正确的 MAMP 版本的 PHP

添加到 .bash_profile

alias php='/Applications/MAMP/bin/php/php7.1.20/bin/php'

【讨论】:

  • 我也做了同样的事情。我每天都在 MAMP 之外使用 php。我需要 MAMP,这样我就可以运行 php 5.4。我做了类似的事情,但我不需要覆盖我当前的 php 命令。所以我这样做了:别名 mphp="/Applications/MAMP/bin/php/php5.4.45/bin/php"
【解决方案3】:

我尝试了很多方法,但都没有运气。 经过多次试验终于想出了一个解决办法。 转到当前活动 PHP 版本目录中的 bin 目录。就我而言,它是/Applications/MAMP/bin/php/php7.2.8/bin 你的情况可能会有所不同。现在使用 sudo 运行以下命令

sudo ./pecl install channel://pecl.php.net/mcrypt-1.0.1

现在您应该将extension=mcrypt.so 添加到 php.ini 重启 MAMP 服务并检查它是否正常工作。

【讨论】:

  • 应该可以,但不幸的是我遇到了一些 c 库问题......不过还是谢谢你。
【解决方案4】:

在控制台尝试

pecl install mcrypt

【讨论】:

    【解决方案5】:

    使用 Brew:

    1. 安装 mcrypt:brew install mcrypt
    2. 在 Mamp 中:File -> Edit Template -> PHP (php.ini)-> {PHP version}
    3. 在文本中找到 'Dynamic Extensions' 并添加以下内容(在以 ';' 开头的行之后):

      extension=mcrypt.so

    4. 保存、重启和测试(以php -i | grep mcrypt 为例)

    【讨论】:

    • 我试过这个。但是php -m | grep mcrypt Warning: PHP Startup: Unable to load dynamic library 'mcrypt.so' (tried: /Applications/MAMP/bin/php/php7.4.12/lib/php/extensions/no-debug-non-zts-20190902/mcrypt.so (dlopen(/Applications/MAMP/bin/php/php7.4.12/lib/php/extensions/no-debug-non-zts-20190902/mcrypt.so, 9): image not found), /Applications/MAMP/bin/php/php7.4.12/lib/php/extensions/no-debug-non-zts-20190902/mcrypt.so.so (dlopen(/Applications/MAMP/bin/php/php7.4.12/lib/php/extensions/no-debug-non-zts-20190902/mcrypt.so.so, 9): image not found)) in Unknown on line 0 $
    猜你喜欢
    • 1970-01-01
    • 2014-12-14
    • 2012-01-05
    • 2018-11-13
    • 2015-03-07
    • 2013-07-30
    • 2013-07-03
    • 2017-05-12
    • 2016-07-09
    相关资源
    最近更新 更多