Linux学习-79-mhash和mcrypt安装过程
创始人
2024-04-22 04:52:45
0

17.4 mhash和mcrypt安装过程

  • mhash源码包安装:mhash 是基于离散数学原理的不可逆向的PHP加密方式扩展库。mhash 可以用于创建校验数值,消息摘要,消息认证码,以及无须原文的关键信息保存(如密码)等。安装步骤如下:
#进入解压缩目录
[root@CncLucZK src]# cd mhash-0.9.9.9
#没有指定安装位置。因为在mcrypt包安装时,会在默认位置查找mhash包,如果指定了安装位置,那么mcrypt包在安装时会报错
[root@CncLucZK mhash-0.9.9.9]# ./configure
...
config.status: creating include/mutils/mhash_config.h
config.status: executing depfiles commands
#编译
[root@CncLucZK mhash-0.9.9.9]# make
#编译安装。把安装过程保存在mhash_install.log文件中,便于删除
[root@CncLucZK mhash-0.9.9.9]# make install >> /root/mhash_install.log
  • mcrypt源码包安装:mcrypt 是 PHP 里面重要的加密支持扩展库,是对mcrypt标准类库的封装,mcrypt支持 20 多种加密算法和 8 种加密模式。如DES, TripleDES, Blowfish (default), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 和 GOST加密算法,CBC、OFB、CFB 和 ECB 四种块加密的模型。mcrypt 要比 libmcrypt 更加先进,在很多项目中必须使用 mcrypt 加密方式。注意,在安装 mcrypt 之前,必须先正确安装 libmcrypt 和 mhash。完成了常用加密算法的封装。
#进入源码目录
[root@CncLucZK ~]# cd /usr/local/src/mcrypt-2.6.8
#LD_LIBRARY_PATH用于指定libmcrypt和mhash库的位置
#./configure为编译前准备命令,——with-libmcrypt-prefix用于指定libmcrypt软件位置
[root@CncLucZK mcrypt-2.6.8]# LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib ./configure --with-libmcrypt-prefix=/usr/local/libmcrypt
#编译
[root@CncLucZK mcrypt-2.6.8]# make
#编译安装
[root@CncLucZK mcrypt-2.6.8]# make install

注意,在这里 mcrypt 并没有安装完成。因为mcrypt是PHP自带的Pecl扩展,所以只要去PHP的解压缩目录去找mcrypt包即可。

这一点区别于PHP安装第三方扩展,所以需要等到 PHP 安装完成之后,再继续安装。

  • PHP 模块安装成功后,才能按照以下步骤继续安装 mcrypt。
  • **动态加载方式:**使用php的常见问题是:编译php时忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想重装整个PHP,于是可以采用动态编译,使用phpize。

1.扩展包的编译安装:到/usr/local/src/php-5.4.25/ext/mcrypt等扩展路径下用/usr/local/php/bin/phpize的命令加载到php环境中,这个目录下有很多自带的扩展源码,缺少什么扩展只需要进入这个扩展目录下,再运行Phpize即可。命令如下:

#再php-8.0.0/ext的扩展包下没有这个mcrypt模块,所以需要将php-5.4.25/ext/mcrypt
[root@CncLucZK ~]# cd /usr/local/src/php-5.4.25/ext/mcrypt
#使用phpize加载PDO模块
[root@CncLucZK mcrypt]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version:         20200930
Zend Module Api No:      20200930
Zend Extension Api No:   420200930#编译前配置:指定php-config文件的位置,调用libmcrypt 
[root@localhost mcrypt]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-mcrypt=/usr/local/libmcrypt
#编译安装
[root@localhost mcrypt]# make && 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-zts-20200930/"
#新加入以下两句话
extension="memcache.so";
extension="mcrypt.so";

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

  • 静态编译:在PHP编译安装时,进入php源代码目录进行编译,先make clean(一定需要)上次的Makefile文件 ,然后执行configure命令时加入的配置:
./configure	\
--with-mcrypt \
--with-mhash

最后进行编译安装 make && make install

下一篇:Linux学习-80-zlib、libpng和jpeg6安装过程

相关内容

热门资讯

Python调用lua 可以使用 Python 的第三方库 pylua 来调用 Lua 代码。 首先,需要在 ...
【手写 Promise 源码】... 一,前言 目前,以下专栏已完结(初版完结,持...
利用Golang可选参数实现可... 本文讨论Golang函数可选参数及函数类型,以及如何利用可选函数类型实现可选模式。同时...
【学习笔记】[AGC040F]... 我是丝薄因为我不会GF 考虑纯组合意义的推导。因为我真的不会数学啊 设(x,d)(x,d)(x,d)...
java线程中断 interr... 1.  线程的状态: new -> 创建完线程,但是还没有启动runna...
16 | 如何做好面试后的复盘... 前言 前言:将经验转换为能力,就需要从经历的事情上总结复盘。 文章目...
Python基础学习七 类 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Py...
day 19 暴力枚举 注意:用long long 存答案P2241 统计方形(数据加强版&#x...
嵌入式理论复习题库(期末考试版... 一、填空题15*1=15 1. 要下载并调试 STM32 程序,可采用   ...
OSG三维渲染引擎编程学习之二... 目录 第三章:OSG场景组织 3.6 Transform变换节点 第三章:OSG场景组织 ...