|-转 解决php版本超过7.2后Call to undefined function mcrypt_get_block_size的办法 安装mcrypt扩展
由于mcrypt扩展在php7.2 弃用,所以需要继续使用这个扩展的话需要自行编译mcrypt扩展。
https://blog.csdn.net/xavi_2010/article/details/107150572
CentOS下php安装mcrypt扩展
安装mcrypt
先确认你的php和pecl版本
[root@lyafei ~]# php -v
PHP 7.2.26 (cli) (built: Dec 31 2019 17:01:19) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
[root@lyafei ~]# pecl version
PEAR Version: 1.10.10
PHP Version: 7.2.26
Zend Engine Version: 3.2.0
确认你的linux有没有安装mcrypt库
[root@lyafei ~]# yum list installed | grep mcrypt
libmcrypt.x86_64 2.5.8-13.el7 @epel
libmcrypt-devel.x86_64 2.5.8-13.el7 @epel
mcrypt.x86_64 2.6.8-11.el7 @epel
以上显示已经安装过,若没有则按以下两种方式安装:
(方法一)yum命令安装
yum install libmcrypt libmcrypt-devel mcrypt mhash
执行后会显示即将安装的相关库,你可以根据你的 linux 限定 x86_64 或者 i386,如 yum install libmcrypt.x86_64(如果 yum 命令无法连接仓库,请检查你的 /etc/yum.repos.d/ 里的文件正确性,以及你的 /etc/host 是不是可达里面的域名)
确定安装,最后显示
Installed:
libmcrypt.x86_64 0:2.5.8-13.el7.centos
libmcrypt-devel.x86_64 0:2.5.8-13.el7.centos
mcrypt.x86_64 0:2.6.8-11.el7
mhash.x86_64 0:0.9.9-1.el7.rf
Complete!
(方法二)源码编译安装
去http://www.sourceforge.net下载 libmcrypt,mhash,mcrypt安装包...
|--转 centos 系统 php8 yum安装 mcrypt 失败,于是用编译安装
[root@10-7-118-170 ~]# yum list installed | grep mcrypt
[root@10-7-118-170 ~]# yum install libmcrypt libmcrypt-devel mcrypt mhash
Last metadata expiration check: 0:12:46 ago on Wed 27 Jan 2021 09:00:07 PM CST.
No match for argument: mcrypt
Error: Unable to find a match: mcrypt
于是决定用编译安装
php7.1以上 php 7.2/php7.3/php8.0 安装 mcrypt 扩展
php的 mcrypt扩展,在php7.1版本以后便不支持,在7.2版本则直接废弃。
1. 下载 mcrypt 扩展源码
下载地址https://pecl.php.net/package/mcrypt
我下载的是1.0.3,下载最新版即可
2. mcrypt 扩展安装
下载好之后,进行解压tar xf mcrypt-1.0.3.tgz
进行扩展安装
- 然后进入到源码目录
cd mcrypt-1.0.3
- 通过 phpize 建立 php 外挂模式
phpize
- 生成相应的makefile
./configure
- 进行编译安装
make && make install
安装成功后会显示
Installing shared extensions: /usr/local/Cellar/php@7.3/7.3.22/pecl/20180731/
在上面那个目录里可以看看到 mcrypt.so 文件...