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
[root@localhost 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模块扩展