• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

mac 安装 php5.6 扩展 mcrypt

武飞扬头像
piayong
帮助1

报错信息:

php和java项目之间交互,数据传递用到了crypt加解密

    vendor('CryptAES.CryptAES');
    $aes = new \CryptAES\CryptAES();

new的时候报错如下:

Fatal error: Call to undefined function CryptAES\mcrypt_module_open() in /Vendor/CryptAES/CryptAES.php on line 89

原因:

php -m | grep 'mcrypt'

找不到,mcrypt扩展,接下来开始安装扩展。

安装:

本来打算通过pecl来安装结果如下:
执行 pecl search mcrypt 来查找 mcrypt 扩展,顺利找到了如下:

Retrieving data...0%
.Matched packages, channel pecl.php.net:
=======================================
Package       Stable/(Latest) Local
mcrypt        1.0.5 (stable)        Bindings for the libmcrypt library
mcrypt_filter 0.1.0 (beta)          Applies mcrypt symmetric encryption using stream filters

执行 pecl install mcrypt 来安装mcrypt 扩展,结果不尽人意,如下

pecl/mcrypt requires PHP (version >= 7.2.0, version <= 8.2.0, excluded versions: 8.2.0), installed version is 5.6.40
No valid packages found
install failed

安装失败原因:
pecl/mcrypt需要PHP(版本>=7.2.0,版本<=8.2.0,排除版本:8.2.0),我本地已经安装使用的php版本为5.6.40

换个方式继续:
1.先查下本地php版本 php -v

PHP 5.6.40 (cli) (built: Jun  7 2022 17:46:34) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Xdebug v2.4.0, Copyright (c) 2002-2016, by Derick Rethans
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

2.去php官网: link下载对应的php版本如下:
学新通
3.解压下载好的压缩包后进入php-5.6.40/ext/mcrypt 目录,执行 phpize命令,如下:

Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226
……省略若干,总之是没有报错,warning 忽略

4.执行 先执行 ./configure 再执行 make 命令

5.执行 make install 命令,结果如下:(扩展文件已经编译好,位置 在 /usr/local/Cellar/php@5.6/5.6.40_4/pecl/20131226/ 下有一个 mcrypt.so 文件)

Installing shared extensions:     /usr/local/Cellar/php@5.6/5.6.40_4/pecl/20131226/

6.在php.ini中添加扩展配置如下:
学新通
7. 执行 brew services restart php@5.6命令,重启php:

Stopping `php@5.6`... (might take a while)
==> Successfully stopped `php@5.6` (label: homebrew.mxcl.php@5.6)
==> Successfully started `php@5.6` (label: homebrew.mxcl.php@5.6)

执行 php -m | grep 'mcrypt'找一下mcrypt扩展,找到了:
学新通
再次执行文章最开始的

new \CryptAES\CryptAES(); //不再报错了

总结

本文其实介绍了两种安装php扩展的方式,根据你的需要自己来决定怎么安装吧

  1. pecl install 方式
  2. 编译安装扩展 方式

写在最后

一直以下国内的技术博客,基本上都是 control c, control v ,水的一批,搜索引擎搜到的也是千篇一律,小弟不才,花了45分钟写了一篇自己解决问题的经历,如果有帮助到你,希望点赞收藏,原创不易,谢谢支持。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgaejfj
系列文章
更多 icon
同类精品
更多 icon
继续加载