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 为我修复了它。
关于早期版本的 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 为我修复了它。