What is MCrypt?
MCrypt is a replacement for the old crypt() package and crypt(1) command, with extensions. It allows developers to use a wide range of encryption functions, without making drastic changes to their code. It allows users to encrypt files or data streams without having to be cryptographers. Above all, it allows you to have some really neat code on your machine.
Site Source : http://mcrypt.sourceforge.net/
Mcrypt is a powerful encryption library containing 22 block algorithms. Specifically, the following algorithms are supported:
Cast-256
DES
Enigma
Gost
LOKI97
Panama
RC2
RC4
RC4-iv
Rijndael-128
Rijndael-192
Rijndael-256
Safer-sk128
Safer-sk64 xtea
Saferplus
Serpent
Threeway
TripleDES
Twofish
Wake
Simple steps: follow these steps to compile Mcrypt and build the extension into your PHP distribution:
2. gunzip mcrypt-x.x.x.tar.gz
3. tar -xvf mcrypt-x.x.x.tar
4. ./configure –disable-posix-threads
5. make
6. make install
7. cd to your PHP directory.
8. ./configure -with-mcrypt=[dir] [--other-configuration-directives]
9. make
10. make install
However, complex and complete steps are given below :
FYI – My machine stats are:
Cent OS 5.0
Apache 2.0
PHP 5.0
Ready? Here’s how you do it.
As root:
1) Install libmcrypt (2.5.x or better) http://mcrypt.hellug.gr/lib/index.html
-download and uncompress: tar z -xvf xxx.tar.gz
-cd into libmcrypt dir and type: ./configure
-when configure is done type: make
-when make is done type: make install
2) Add the library dir to /etc/ld.so.conf
-edit /etc/ld.so.conf and add: /usr/local/lib
-save file and then type the command: ldconfig
3) Update/Install Mhash (0.8.15 or newer) http://mhash.sourceforge.net/
-download and uncompress: tar z -xvf xxx.tar.gz
-cd into libmcrypt dir and type: ./configure
-when configure is done type: make
-when make is done type: make install
-when make install is done type: ldconfig
4) Install latest version of mcrypt (2.6.x or better) http://mcrypt.hellug.gr/mcrypt/index.html
-download and uncompress: tar z -xvf xxx.tar.gz
-cd into mcrypt dir and type: ./configure
-when configure is done type: make
-when make is done type: make install
-when make install is done type: ldconfig
5) Take note of your current php info
-create a file somewhere on your webserver called phpinfo.php
-edit the file and add the single line:
-make sure a normal user owns the file (not root – ie: chown user.user phpinfo.php)
-issue the command: chmod 755 phpinfo.php
-open the file in a web browser ie: www.yourserver.com/phpinfo.php
-copy the contents of “Configure Command” to a text file somewhere.
-It will look something like this (probably all on 1 line – leave it on 1 line):
‘./configure’ ‘–with-apxs=/usr/local/apache/bin/apxs’ ‘–with-xml’ ‘–enable-bcmath’
‘–enable-calendar’ ‘–enable-ftp’ ‘–enable-magic-quotes’ ‘–with-mysql’ ‘–with-pear’
‘–enable-sockets’ ‘–enable-track-vars’ ‘–enable-versioning’ ‘–with-zlib’
-edit the command to remove all the ‘ ‘ marks so it looks like this:
./configure –with-apxs=/usr/local/apache/bin/apxs –with-xml –enable-bcmath –enable-calendar
–enable-ftp –enable-magic-quotes –with-mysql –with-pear –enable-sockets –enable-track-vars
–enable-versioning –with-zlib
-at the end, add the following (assuming mcrypt is actually found in /usr/local/bin/mcrypt):
–with-mcrypt=/usr/local/bin/mcrypt
-save the text file.
6) Go into your php source directory : /home/cpapachebuild/buildapache/php-4.3.1/
-type: make clean
-type: rm config.cache (yes, remove that file)
-issue your command you saved in the text file. Something like this:
./configure –with-apxs=/usr/local/apache/bin/apxs –with-xml –enable-bcmath –enable-calendar
–enable-ftp –enable-magic-quotes –with-mysql –with-pear –enable-sockets –enable-track-vars
–enable-versioning –with-zlib –with-mcrypt=/usr/local/bin/mcrypt
-when that is done, type: make
-when that is done, type: make test (most tests will fail… about 50%-60% or so)
-when that is done, type make install
or
enable support for php. requires php-mcrypt and php-mhash packages:
yum install php-mhash*
7) Restart Apache
-issue the command: service httpd restart
-go back to your phpinfo.php page and check to see that –with-mcrypt now shows up in the “Configure Command”
Question:
I am trying to have mcrypt support in php. I installed libmcrypt and mhash using yum. They installed okay, but they weren’t added to phpinfo(), so they do not work.
Reading mcrypt info it says I need to recompile php.
Answer: It is working!
While I was requiring to recompile php according to the information on the mcrypt package to enable mcrypt support. I found an alternative.
There are 2 solutions to this problem:
A) This is the painless way to do it.
After a lot of research, as I couldn’t find answers on forums and other places. I found on sourceforge.net they released some rpm packages to integrate mcrypt and mhash with php.
First we need to install mcrypt and mhash as follows:
1) Install mcrypt & mhash
yum install mhash*
answer y to the question if matched your system (it should).
If it comes out
Parsing package install arguments
No package mcrypt available.
Nothing to do
Manually install from the source after compiling as indicated from the start or the post.
2) enable support for php. requires php-mcrypt and php-mhash packages:
yum install php-mhash*
If you get an error saying packages not signed (unsigned packages), do the following:
edit /etc/yum.conf
change:
gpgcheck=1 to gpgcheck=0
attempt step 2 again. Once completed change back yum.conf