CentOS下安装Php mcrypt扩展方法

PHP程序员们在编写代码程序时,除了要保证代码的高性能之外,还有一点是非常重要的,那就是程序的安全性保障。PHP除了自带的几种加密函数外,还有功能更全面的PHP加密扩展库Mcrypt和Mhash。

其中,Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。

mcrypt 是 php 里面重要的加密支持扩展库,linux环境下:该库在默认情况下不开启。window环境下:PHP>=5.3,默认开启mcrypt扩展。

大致步骤(1)安装mcrypt (2)安装php对mcrypt的扩展 (3)重启apache

一、检查linux没有安装mcrypt库,如果已安装,跳过安装步骤

# yum list installed|grep mcrypt

libmcrypt.x86_64                       2.5.8-9.el6                      @epel  
libmcrypt-devel.x86_64                 2.5.8-9.el6                      @epel  
php-mcrypt.x86_64                      5.3.3-4.el6                      @epel  

以上显示已经安装过,若没有,则按以下两种方式安装

二、yum命令安装

yum install libmcrypt libmcrypt-devel mcrypt mhash

[[email protected] soft]# yum install libmcrypt libmcrypt-devel mcrypt mhash
已加载插件:fastestmirror, refresh-packagekit, security
设置安装进程
Loading mirror speeds from cached hostfile

 * base: mirrors.sina.cn
 * epel: mirror01.idc.hinet.net
 * extras: mirrors.sina.cn
 * updates: mirror.bit.edu.cn
包 libmcrypt-2.5.8-9.el6.x86_64 已安装并且是最新版本
包 libmcrypt-devel-2.5.8-9.el6.x86_64 已安装并且是最新版本
解决依赖关系
--> 执行事务检查
---> Package mcrypt.x86_64 0:2.6.8-10.el6 will be 安装
---> Package mhash.x86_64 0:0.9.9.9-3.el6 will be 安装
--> 完成依赖关系计算

依赖关系解决

================================================================================
 软件包           架构             版本                    仓库            大小
================================================================================
正在安装:
 mcrypt           x86_64           2.6.8-10.el6            epel            83 k
 mhash            x86_64           0.9.9.9-3.el6           epel           102 k

事务概要
================================================================================
Install       2 Package(s)

总下载量:185 k
Installed size: 430 k
确定吗?[y/N]:在用户的命令下退出
Your transaction was saved, rerun it with:
yum load-transaction /tmp/yum_save_tx-2016-06-20-00-14PXtlE2.yumtx

三、编译安装步骤

Linux版的PHP自身不打包该库,需要自行到官方网站下载代码进行编译安装
需要下载以下的包:

◆ libmcrypt-版本号.tar.gz
◆ mhash-版本号.tar.gz
◆ mcrypt-版本号.tar.gz
其中“版本号”为对应版本号
# tar -xvf libmcrypt-X.X.X.tar
# cd libmcrypt-X.X.X
# ./configure
现在你应该已经把libmcrypt作为一个共享组件了(但不是一个PHP的共享组件)。运行命令:
# ldconfig
它将使得共享对象可以在C/C++开发中被使用。下面把mcrypt动态组件编译到PHP中。首先,你需要PHP-devel 包中包含的 ‘phpize‘ 命令。
当你当前运行的PHP中已经有了 PHP-devel 后,输入:
# cd ext/mcrypt
# phpize
# aclocal
# ./configure
# make clean
# make
# make install
现在php的安装目录下面应该有了mcrypt.so的文件,在 /etc/php.ini 添加:
extension=mcrypt.so
重启apache就可以了

四、编译安装示例

1、检查是否安装libmcrypt
ldconfig -p | grep libmcrypt
返回类似以下代码已经安装

libmcrypt.so.4 (libc6,x86-64) => /usr/lib64/libmcrypt.so.4
2、没有安装的话
下载地址:http://sourceforge.net/projects/mcrypt
可以同时下载libmcrypt 和 mcryp
先安装libmcrypt, 默认安装目录为 /usr/local , PHP 手册建议–disable-posix-threads ,

./configure && make && make install
ldconfig

再安装mcrypt, 默认安装目录为 /usr/local
./configure --with-libmcrypt-prefix=/usr/local

4. 确认是否已安装mhash
ldconfig -p | grep mhash
如果没有安装:
下载地址:http://mhash.sourceforge.net/
./configure && make && make install
ldconfig

5.进入源码目录,安装mcrypt模块,这一步会生成一个mcrypt.so文件
cd php-x.x.x/ext/mcrypt
./configure --with-mcrypt=/usr/local/ && make && make install

6.在/etc/php.ini最后面加上一行:
extension=/usr/lib/php/modules/mcrypt.so

7.重启php
#service httpd restart
8、重启apache,查阅phpinfo,mcrypt模块扩展


发布日期:

所属分类: Linux/Centos/Os, Php, 后端 标签: