Я установил mcrypt с помощью Homebrew, но, похоже, он не загружается. Я установил, запустив:
brew install php70-mcrypt
Когда я запускаю phpinfo() в браузере, я не вижу сведений об установке mcrypt (кроме авторов модуля).
Использует ли nginx тот же php, который я получаю из командной строки? Или я неправильно устанавливаю/включаю mcrypt?
Использование phpinfo() в браузере:
phpinfo сообщает мне путь .ini:
Если я проверю каталог /usr/local/etc/php/7.0/conf.d, там есть два файла .ini:
- ext-intl.ini
- ext-mcrypt.ini
но они, кажется, не были проанализированы. Один mcrypt (тот, который я пытаюсь заставить работать) содержит:
а /usr/local/opt/php70-mcrypt — символическая ссылка на папку Cellar /usr/local/Cellar/php70-mcrypt/7.0.27_19, которая содержит файл mcrypt.so.
Я попытался добавить расширение в файл php.ini напрямую, как с путем, так и без него. Каждый раз, когда я сохраняю файл, перезапускаю php (не уверен, что это необходимо...) и nginx:
brew services restart php70
brew services restart nginx
Все еще не загружается.
Использование терминала:
Если я запускаю это из терминала:
php -i | grep mcrypt
Я получил:
/usr/local/etc/php/7.0/conf.d/ext-mcrypt.ini
Registered Stream Filters => zlib.*, bzip2.*, convert.iconv.*, string.rot13,
string.toupper, string.tolower, string.strip_tags, convert.*, consumed,
dechunk, mcrypt.*, mdecrypt.*
mcrypt
mcrypt support => enabled
mcrypt_filter support => enabled
mcrypt.algorithms_dir => no value => no value
mcrypt.modes_dir => no value => no value
Здесь, кажется, больше подробностей.
Использует ли nginx другой php из командной строки? Как я могу убедиться, что nginx использует php, который я вижу в командной строке, если это проблема? Или, в качестве альтернативы, как я могу установить php на «другой» php, который использует nginx?
Основной причиной этого является загрузка Magento 2, которая выдает мне эту ошибку, которая, я думаю, подтверждает, что mcrypt действительно не загружается должным образом:
Exception #0 (Exception): Notice: Use of undefined constant MCRYPT_BLOWFISH - assumed 'MCRYPT_BLOWFISH' in /[MY DOC ROOT]/magento2/vendor/magento/framework/Encryption/Encryptor.php on line 397
Что я здесь делаю неправильно?