Mcrypt extension is missing in 14.04 server for mysql

The php mcrypt extension on ubuntu 14.04 shows that it is installed properly, but phpmyadmin says:

 The mcrypt extension is missing. Please check your PHP configuration.

My current php config is here. If you need anymore information, please contact me through the comments.

$ sudo apt-get install php5-mcrypt
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    php5-mcrypt is already the newest version.
    0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Solution 1:

Try just doing this:

sudo php5enmod mcrypt

And then:

sudo service apache2 restart 

I have installed fresh Ubuntu 14.04 (desktop version) to my computer. This way works for enabling mcrypt that was already installed.

Solution 2:

Try this:

sudo updatedb 
locate mcrypt.ini

Should show it located at /etc/php5/mods-available

locate mcrypt.so

Edit mcrypt.ini and change extension to match the path to mcrypt.so, example:

extension=/usr/lib/php5/20121212/mcrypt.so

Now this:

sudo php5enmod mcrypt - (optional since its already enabled during phpmyadmin setup)

Verify that new files exists here (they should be auto created from the issue above)

ls -al /etc/php5/cli/conf.d/20-mcrypt.ini
ls -al /etc/php5/apache2/conf.d/20-mcrypt.ini

Otherwise do the following

Create symbol links now

sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/cli/conf.d/20-mcrypt.ini
sudo ln -s /etc/php5/mods-available/mcrypt.ini /etc/php5/apache2/conf.d/20-mcrypt.ini

Restart Apache

sudo service apache2 restart

Restart php5 or php5-fpm

sudo service php5 restart

Solution 3:

Install mcrypt extension for PHP, Enable it, and Restart Apache. Following are the commands to do:

sudo apt-get install mcrypt php5-mcrypt
sudo php5enmod mcrypt
sudo service apache2 restart

Solution 4:

The php5-mcrypt Ubuntu package install the config file mcrypt.ini into /etc/php5/conf.d/ which is the old PHP config directory layout.

The current way of working to enable modules in PHP5 is to put the ini files in the /etc/php5/mods-available directory. Then, to enable the module in PHP5, you have to create a symbolic link to the related ini files from /etc/php5/apache2/conf.d directory to enable the module when PHP is used under Apache or / and from /etc/php5/cli/conf.d if you want to have this module enabled when you use PHP outside Apache, in scripts run at the command line or from crontab.

Also note that in the conf.d directory, you can create the link to the ini file by putting a number in front of it to have the modules loaded in a specific order. Usefull when you need to load a module depending on another one.

Of course, don't forget to restart Apache if you have enabled the module for Apache :

 sudo service apache2 restart

Solution 5:

My 14.04 server install only needed (after php5-mcrypt installed)

sudo php5enmod mcrypt
sudo service apache2 restart