使用 MAMP 启用 MCrypt

Enable MCrypt using MAMP

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

php -m | grep mcrypt
output: mcrypt

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

php -m | grep mcrypt returns mcrypt,这意味着 mcrypt 库已安装并启用。

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

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

extension=mcrypt.so

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

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

php --info | grep php.ini

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

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

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

问题是 MAMP PHP 配置选项“使此版本在命令行上可用”是 NOT工作,所以我在命令行上使用的 PHP 版本 [在我的例子中] 是没有 mcrypt 的 macOS 默认 PHP 7.1.16(默认包含在 macOS 中的版本)

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

添加到 .bash_profile

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

我试了很多方法都没有成功。 经过多次试验终于想出了一个解决办法。 转到当前活动 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 服务并检查它是否正常工作。

在控制台中尝试

pecl install mcrypt

使用 Brew:

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

    extension=mcrypt.so

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