Linux mhash和mcrypt安装过程详解(LAMP环境搭建)

 
本节讲解LAMP环境搭建过程中 mhash和mcrypt源码包的安装过程。

mhash源码包安装

mhash 是基于离散数学原理的不可逆向的 PHP 加密方式扩展库。mhash 可以用于创建校验数值,消息摘要,消息认证码,以及无须原文的关键信息保存(如密码)等。

安装步骤如下:

[root@localhost ~]# cd /usr/local/src/mhash-0.9.9.9.tar.gz
[root@localhost ~]# cd /usr/local/src/mhash-0.9.9.9.tar.gz
#进入解压缩目录
[root@localhost mhash-0.9.9.9]#./configure
#没有指定安装位置。因为在mcrypt包安装时,会在默认位置查找mhash包,如果指定了安装位置,
#那么mcrypt包在安装时会报错
[root@localhost mhash-0.9.9.9]# make
#编译
[root@localhost mhash-0.9.9.9]# make install >> /root/mhash_install.log
#编译安装。把安装过程保存在mhash_install.log文件中,便于删除

mcrypt源码包安装

mcrypt 是 PHP 里面重要的加密支持扩展库。mcrypt 库支持 20 多种加密算法和 8 种加密模式。mcrypt 要比 libmcrypt 更加先进,在很多项目中必须使用 mcrypt 加密方式。请大家注意,在安装 mcrypt 之前,必须先正确安装 libmcrypt 和 mhash。

安装步骤如下:

[root@localhost mhash-0.9.9.9]# cd /usr/local/src/mcrypt-2.6.8
#进入源码目录
[root@localhost mcrypt-2.6.8]#
LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/ local/lib./configure --with-libmcrypt-prefix=/usr/local/libmcrypt
#LD_LIBRARY_PATH用于指定libmcrypt和mhash库的位置
#./configure为编译前准备命令,——with-libmcrypt-prefix用于指定libmcrypt软件位置
[root@localhost mcrypt-2.6.8]# make
#编译
[root@localhost mcrypt-2.6.8]# make install
#编译安装

请大家注意,在这里 mcrypt 并没有安装完成。因为 mcrypt 是 PHP 的模块,所以需要等到 PHP 安装完成之后,再继续安装。

有关PHP模块的安装过程,可以参照《Linux安装PHP过程详解》一文进行安装。

PHP 模块安装成功后,才能按照以下步骤继续安装 mcrypt。

1)编译安装

命令如下:

[root@localhost memcache-3.0.8]# cd /lamp/php-5.4.25/ext/mcrypt/
#进入PDO模块的解压缩目录
[root@localhost mcrypt]# /usr/local/php/bin/phpize
#使用phpize加载PDO模块
[root@localhost mcrypt]# ./configure \ #编译前配置
--with-php-config=/usr/local/php/bin/php-config \#指定php-config文件的位置
--with-mcrypt=/usr/local/libmcrypt/ #调用libmcrypt
[root@localhost mcrypt]# make
#编译
[root@localhost mcrypt]# make install
#编译安装

2) 修改PHP配置文件

要让 PHP 可以识别和使用 memcache 和 mcrypt 模块,还需要修改一下 PHP 的配置文件,命令如下:

[root@localhost mcrypt]# vi /usr/local/php/etc/php.ini
#修改PHP配置文件
extension_dir = "./"
#在这个文件中找到这句话,把它改为以下这句话
extension_dir="/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/"
#新加入以下两句话
extension="memcache.so";
extension="mcrypt.so";

安装完成之后,重启 apache,就可以在 phpinfo 页面中看到这两个模块了。