Mcrypt отсутствует в MAMP Pro 4 на MacOS

Существуют различные темы об этой проблеме, возникающей с более ранними версиями MAMP, но большинство из этих тем датированы 2014 годом, а сейчас 2016 год, когда MAMP Pro имеет версию 4.

Мне нужен Mcrypt для устаревшей кодовой базы/фреймворка. С MAMP Pro 4 вы можете изменить версию PHP для каждого хоста. В данном случае я использую 5.5.38.

Framework выводит только текст «Требуется расширение Mcrypt PHP». – и при использовании phpinfo() видно, что Mcrypt не загружен, так как для Mcrypt нет раздела, но он указан в разделе Настроить команду:

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

В MAMP Pro 4 в разделе Файл > Редактировать шаблон > PHP (php.ini) > 5.5.38 есть эта строка:

extension=mcrypt.so

Итак, кажется, что все в порядке, и очевидно, что они намеревались работать «из коробки» — или после обновления версии, как в моем случае MAMP Pro 3.4 > 4.0.6.

Но почему это не работает?

ВНИМАНИЕ! Эта проблема связана не с CLI PHP, а с PHP хоста Apache.

Похоже, они и раньше испортили ini-файлы PHP (2 года назад), что привело к аналогичной проблеме, обещая скоро исправить: Mcrypt с Mamp Pro в 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

person ux.engineer    schedule 28.12.2016    source источник
comment
Имея ту же проблему. Любое разрешение?   -  person Rajat    schedule 07.01.2017


Ответы (2)


У меня была аналогичная проблема с MAMP 4.1 (454). Я устанавливал Joomla поверх MAMP, но Joomla сообщила, что отсутствует mcrypt.

Проблема была в файле php.ini. В частности, в /Applications/MAMP/bin/php/php7.1.0/conf/php.ini в строке 422 было:

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"
person Andrew J. Gray    schedule 21.01.2017
comment
Это сработало для меня, у меня была такая же проблема. Спасибо за публикацию! - person Mark; 05.02.2017
comment
У меня такая же проблема, но в моем php.ini путь без отладки правильный!? - person KSPR; 12.02.2018

У меня была точно такая же проблема.broken mycrypt

К счастью, обновление до MAMP 4.1.1 исправило это для меня.

person Zach Briggs    schedule 11.02.2017