MacOS 上的 MAMP Pro 4 缺少 Mcrypt

Mcrypt missing with MAMP Pro 4 on MacOS

关于早期版本的 MAMP 中发生的这个问题有各种线索,但大多数线索可以追溯到 2014 年,现在是 2016 年 MAMP Pro 的版本 4。

我需要 Mcrypt 用于遗留代码库/框架。使用 MAMP Pro 4,您可以为每个主机更改 PHP 版本。在这种情况下,我是 运行 5.5.38.

框架仅输出文本 "Mcrypt PHP extension required." – 使用 phpinfo() 时很明显未加载 Mcrypt,因为没有用于 Mcrypt 的部分,但这列在 Configure Command[=36 下=]:

--with-mcrypt=shared,/Applications/MAMP/Library'

文件 > 编辑模板 > PHP (php.ini) > 5.5.38 下的 MAMP Pro 4 上有这一行:

extension=mcrypt.so

所以一切似乎都井井有条,很明显他们希望它开箱即用 - 或者在版本升级后,如我的情况 MAMP Pro 3.4 > 4.0.6。

但是为什么这不起作用?

注意!这个问题不是 CLI PHP,而是 Apache 的主机 PHP.

他们似乎在(2 年前)之前弄乱了 PHP ini 文件,导致了类似的问题,承诺会尽快提供修复:Mcrypt with Mamp Pro on Mac OS X Yosemite 10.10

附加信息:

MacOS 10.11.6 El Capitan

which mcrypt
/usr/local/bin/mcrypt

locate mcrypt.ini
/usr/local/etc/php/5.4/conf.d/ext-mcrypt.ini
/usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini

我在 MAMP 4.1 (454) 中遇到了类似的问题。我在 MAMP 上安装 Joomla,但 Joomla 报告缺少 mcrypt。

问题出在 php.ini 文件中。具体来说,在第 422 行的 /Applications/MAMP/bin/php/php7.1.0/conf/php.ini 中是:

extension_dir = "/Applications/MAMP/bin/php/php7.1.0/lib/php/extensions/no-debug-non-zts-20151012/"

但是,扩展目录没有 "no-debug-non-zts-20151012" 目录。相反,它有一个 "no-debug-non-zts-20160303" 目录。

修复是编辑该行以将 "no-debug-non-zts-20151012" 更改为 "no-debug-non-zts-20160303" 并在 php.ini 文件的其他两个位置进行相同的更改。进行更改并重新启动 MAMP 服务器后,Joomla 可以看到 mcrypt 和 mcrypt 出现在 phpInfo 页面上。

更改的差异是:

422c422
< extension_dir =       "/Applications/MAMP/bin/php/php7.1.0/lib/php/extensions/no-debug-non-zts-  20151012/"
---
> extension_dir = "/Applications/MAMP/bin/php/php7.1.0/lib/php/extensions/no-debug-non-zts-20160303/"
1155c1155
<      ;zend_extension="/Applications/MAMP/bin/php/php7.1.0/lib/php/extensions/no-debug-non-zts-20151012/opcache.so"
---
>    ;zend_extension="/Applications/MAMP/bin/php/php7.1.0/lib/php/extensions/no-debug-non-zts-20160303/opcache.so"
1164c1164
< ;zend_extension="/Applications/MAMP/bin/php/php7.1.0/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so"
---
> ;zend_extension="/Applications/MAMP/bin/php/php7.1.0/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so"

我遇到了完全相同的问题。

幸运的是升级到 MAMP 4.1.1 为我修复了它。