Что нужно для PHP mcrypt_decrypt()?

У меня есть скрипт, который использует функцию mcrypt_decrypt(), но я получаю следующую ошибку

Фатальная ошибка: вызов неопределенной функции mcrypt_decrypt()

Какие модули/библиотеки мне нужно включить, чтобы использовать эту функцию? Или есть другая причина, по которой я получаю ошибку?

Спасибо


person John    schedule 12.03.2009    source источник


Ответы (9)


Посмотри пожалуйста:

Вам нужно скомпилировать ваш PHP с помощью --with-mcrypt[=DIR] и установить libmcrypt версии 2.5.6 или выше на вашем компьютере.

person Stefan Gehrig    schedule 12.03.2009

sudo apt-get установить php5-mcrypt

работает на убунту.

person Ben    schedule 03.02.2010
comment
для «простых» среди нас это также требует перезапуска apache - person icc97; 30.07.2012
comment
как говорит icc97, нужен перезапуск апача, а не перезагрузка :) - person Packet Tracer; 21.07.2014

Настройте php5-mcrypt с помощью php5-fpm (Ubuntu 14.04)

Я предполагаю, что у вас уже установлены и запущены nginx и php-fpm.

php5-mcrypt уже должен быть установлен (поставляется в комплекте с php5-fpm). Просто для безопасности, apt-get install php5-mcrypt

Создайте символическую ссылку на доступные моды, ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini

Включите его. php5enmod mcrypt

Перезапустите php-fpm, перезапустите службу php5-fpm

Перезапустите nginx, перезапустите службу nginx

Сделанный!

person user28763    schedule 27.05.2015
comment
Спасибо за этот ответ, он отлично сработал для меня, когда другие ответы доставляли мне проблемы. - person zgc7009; 11.01.2016
comment
НАКОНЕЦ-ТО ... кто-то, кто знает, о чем они говорят ... потребовалось всего около 4 потоков обмена стеками, чтобы найти этот ... СПАСИБО !!! - person Ryan Ellis; 18.05.2016

Из руководства:

Вам нужно скомпилировать PHP с параметром --with-mcrypt[=DIR], чтобы включить это расширение. DIR — это каталог установки mcrypt. Убедитесь, что вы скомпилировали libmcrypt с параметром --disable-posix-threads.

Обычно, если PHP говорит, что функция не определена, это означает, что вам нужно скомпилировать в какой-то библиотеке.

person JW.    schedule 12.03.2009

Я выше не работает, вы можете попробовать это:

создайте файл mcrypt.ini в /etc/php5/conf.d с содержимым

extension=mcrypt.so
person Nebril    schedule 22.08.2011

Я обновил PHP до версии 5.4 через http://php-osx.liip.ch/, и это сработало.

person Nico Prat    schedule 24.08.2012

для php 5.3.X

зависит от наличия пакета yum mcrypt, вы можете использовать пакеты yum

вот так: yum установить php53-mcrypt и перезапустить httpd

person masoud2011    schedule 31.01.2013

И будьте осторожны с папкой на странице phpinfo: «Просканируйте этот каталог на наличие дополнительных файлов .ini» и следующее: «Проанализированы дополнительные файлы .ini».

person tsalm    schedule 22.03.2014

После обновления до php 5.4 работает (работает)

sudo php5enmod mcrypt
sudo service apache2 restart
person Danny Muñoz    schedule 09.05.2014