基本原理是:首先使mcrypt软件能够运行,然后安装php扩展模块,并在php.ini配置。

这里注意的是mcrypt软件依赖libmcrypt和mhash两个库,所以安装配置顺序从右至左

I 下载安装mcrypt

1.先去http://www.sourceforge.net 下载Libmcrypt,mhash,mcrypt安装包 ,下面是我找到的链接

Libmcrypt( libmcrypt-2.5.8.tar.gz ): http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91774&release_id=487459

mcrypt( mcrypt-2.6.8.tar.gz ): http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91948&release_id=642101

mhash( mhash-0.9.9.9.tar.gz ): http://sourceforge.net/project/showfiles.php?group_id=4286&package_id=4300&release_id=645636

2 .先安装Libmcrypt

#tar -zxvf libmcrypt-2.5.8.tar.gz

#cd libmcrypt-2.5.8

#./configure

#make

#make install

说明:libmcript默认安装在/usr/local/lib

3.安装mhash

#tar -zxvf mhash-0.9.9.9.tar.gz

#cd mhash-0.9.9.9

#./configure

#make

#make install

4.安装mcrypt

#tar -zxvf mcrypt-2.6.8.tar.gz

#cd mcrypt-2.6.8

#LD_LIBRARY_PATH=/usr/local/lib ./configure

#make

#make install

说明:由于在配置Mcrypt时,会找不到libmcrypt的链接库,导致无法编译,因为Libmcrypt的链接库在/usr/local/lib/文件夹 下。因些在配置mcrypt时要加入LD_LIBRARY_PATH=/usr/local/lib导入键接库

5、安装php-mcrypt扩展

yum groupinstall “PHP Support” 后 CentOS6 默认安装的是php5.3.2
yum install php-devel 使phpize 可编译安装扩展
默认的 redhat repos php中是没有 mcrypt 扩展的
根据红帽的官方消息(https://bugzilla.redhat.com/show_bug.cgi?id=621268)RHEL 不打算添加PHP的mcrypt 的支持
Joe Orton 2010-08-05 04:47:17 EDT

Thanks for the report.

We are not planning to ship mcrypt support for PHP.

所以使用 yum install php-mcrypt 时会提示没有安装
Setting up Install Process
No package php-mcrypt available.
Error: Nothing to do
从php 官网下载新的php 5.3 源码包后,解压到本地目录

进入解压目录下的 ext 目录后会发现有 mcrypt
进入 mcrypt 目录
phpize
./configure
make
make install
Installing shared extensions: /usr/lib64/php/modules/
我们先测试查看 phpinfo 当前已有的扩展(注意修改httpd配置文件 启动httpd 并开启防火墙的 80 等端口)
没有 mcrypt
vi /etc/php.d/mcrypt.ini
cat /etc/php.d/mcrypt.ini
; Enable mcrypt extension module
extension=mcrypt.so
#service httpd restart

再次查看 phpinfo 可以发现 mcrypt 扩展已安装成功