What's needed for PHP's mcrypt_decrypt()?
Question
I have a script that uses mcrypt_decrypt() function, but I get the following error
Fatal error: Call to undefined function mcrypt_decrypt()
What modules/libraries do I need to include to use this function? Or is there another reason I'm getting the error?
Thanks
Solution
Please see:
You need to compile your PHP with --with-mcrypt[=DIR]
and have libmcrypt Version 2.5.6 or greater on your machine.
OTHER TIPS
sudo apt-get install php5-mcrypt
works on ubuntu.
Configure php5-mcrypt with php5-fpm (Ubuntu 14.04)
I’m going to assume you already have nginx and php-fpm installed and running.
php5-mcrypt should be installed already (it comes bundled with php5-fpm). Just for safety, apt-get install php5-mcrypt
Create symlink to mods-avaliable, ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/mcrypt.ini
Enable it. php5enmod mcrypt
Restart php-fpm, service php5-fpm restart
Restart nginx, service nginx restart
Done!
From the manual:
You need to compile PHP with the --with-mcrypt[=DIR] parameter to enable this extension. DIR is the mcrypt install directory. Make sure you compile libmcrypt with the option --disable-posix-threads.
Generally if PHP says a function is undefined, it means you need to compile in some library.
I above doesn't work, you can try this:
create mcrypt.ini file in /etc/php5/conf.d with content
extension=mcrypt.so
I upgraded PHP to 5.4 via http://php-osx.liip.ch/ and it worked.
for php 5.3.X
depends on availability of yum mcrypt package , you could use yum packeages
like this : yum install php53-mcrypt and restart httpd
And be carefull about the folder in the phpinfo page : "Scan this dir for additional .ini files" and the next : "Additional .ini files parsed ".
After upgrading to php 5.4 running (Works)
sudo php5enmod mcrypt
sudo service apache2 restart