problem with mcrypt installation

Kide  picture Kide · Jan 26, 2011 · Viewed 35.6k times · Source

I've asked the system admins to install mcrypt on the server, and they say everything is OK. But when I run my simple script I get this.

Warning: mcrypt_get_iv_size() [function.mcrypt-get-iv-size]: Module initialization failed

It's coming from this line:

$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256,MCRYPT_MODE_ECB);

Now, from this code:

$algorithms = mcrypt_list_algorithms("/usr/local/bin/mcrypt");

foreach ($algorithms as $cipher) {
    echo "$cipher<br />\n";
} 

I get:

Warning: mcrypt_list_algorithms() [function.mcrypt-list-algorithms]: No algorithms found in module dir

When I run this:

$modes = mcrypt_list_modes("/usr/local/bin/mcrypt");

foreach ($modes as $mode) {
    echo "$mode <br />\n";
}

I get:

Warning: mcrypt_list_modes() [function.mcrypt-list-modes]: No modes found in module dir

However, running this command this command

which mcrypt; mcrypt -v

Produces:

/usr/local/bin/mcrypt
Mcrypt v.0.9.9 (x86_64-unknown-linux-gnu)
Linked against libmcrypt v.2.5.7
Copyright (C) 1998-2002 Nikos Mavroyanopoulos ([email protected])

Is mcrypt installed/configured correctly?

UPDATE:

I did this:

whereis libmcrypt

...and got the result:

libmcrypt: /usr/local/lib/libmcrypt /usr/local/lib/libmcrypt.so /usr/local/lib/libmcrypt.la

I've also changed:

$modes = mcrypt_list_modes("/usr/local/bin/mcrypt");

to...

$modes = mcrypt_list_modes("/usr/local/lib/libmcrypt");
$algorithms = mcrypt_list_algorithms("/usr/local/lib/libmcrypt");

As recommended, but still get the error:

Warning: mcrypt_list_modes() [function.mcrypt-list-modes]: No modes found in module dir in

Then I went into the file manager in my CPanel to /usr/local/lib/libmcrypt. The directory exists but it has no files in it...

Here is the print screen of the file manager.

Thanks.

Answer

Akarsh Satija picture Akarsh Satija · Nov 26, 2013

Try this for your mcrypt problem:

mv -i /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available/
sudo php5enmod mcrypt
sudo service apache2 restart

It's a bug with the location of the mcrypt.ini file.

I had the same bug, I did a cp instead of a mv to be sure but it solved the problem.

For PHP not working, if you get phpmyadmin working (even with the mcrypt error), it means PHP is working (because phpmyadmin uses PHP). But in your example

<? echo $row['details']; ?>
change <? to <?php and try again?