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

Was it helpful?

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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top