Enabling mcrypt for PHP
/When working on database-intensive projects, like Intelection, I sometimes use phpMyAdmin. It's capable of using mcrypt, which is cryptographic software. However, after upgrading to Mac OS X Mavericks, my mcrypt installation was broken. I kept getting an error on printed SQL reports, and the following image would appear on each screen:
Here's how to fix it. First, install command line developer tools so that the proper PHP libraries are in place. Use this command:
xcode-select --install
Then, download and install autoconf, which is required to install the PHP extension for mcrypt:
cd /tmp curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz tar -zxvf autoconf-latest.tar.gz cd autoconf-2.69/ ./configure --prefix=/usr/local make sudo make install
Next, install libmcrypt. You can download it from sourceforge.net here. Use these commands to install:
cd /tmp mv ~/Downloads/libmcrypt-2.5.8.tar.gz ./ tar -zxvf libmcrypt-2.5.8.tar.gz cd libmcrypt-2.5.8 ./configure make sudo make install
The next step is to install the PHP mcrypt extension. In order to do that, you'll need to download the correct PHP that you have installed on your system. To figure this out, run these commands:
which php --(mine showed /usr/bin/php) /usr/bin/php -v
Go to PHP's historical website and download the correct version. Mine's 5.4.17. Then, install the extension:
cd /tmp mv ~/Downloads/php-5.4.17.tar.gz ./ tar -zxvf php-5.4.17.tar.gz cd php-5.4.17/ext/mcrypt/ phpize ./configure make sudo make install
Next, PHP must be configured to use the mycrpt extension. This is done by editing the php.ini file, as follows:
sudo vi /etc/php.ini
Use the following regular expression in vim to find the extension part of the file:
:/^;extension
Add this line to the file:
extension = mcrypt.so
Finally, restart the web server to commit the changes:
sudo apachectl restart
With that, mcrypt is working properly again with phpMyAdmin.