php7.2 使用openSSL代替mcrypt的解决方法

来源:6-3 API接口数据安全解决方案之授权码sign解剖

慕粉3918266

2019-05-24

继上次在uploadify那块踩坑之后,又出现了第二个让我折腾半天的坑。真希望老师能把这些已经过时的东西重新更新一遍,不要浪费学员的时间。
mycrypt在PHP7.1之后已经被弃用了,需要使用openSSL扩展,而免费版本的MAMP什么都需要手动配置,为了加上这个openSSL库我也是花了好多时间。真心推荐有钱的买个正版的pro,我不想花钱也不想盗版就自己折腾了。

总结一下,我大概经过了这些步骤(MAC OS 系统) ,不是教程,仅供观感它有多麻烦:

  • 官网下载release版本的php (对应MAMP使用版本,这里是7.2.8)
  • 解压,cd到下载路径下面 cd ext/openssl
  • 修改 config0.m4 为config.m4 (使用cp命令)
  • 找到phpize 在当前路径输入/你的phpize所在目录/phpize
  • brew install openssl
  • brew install autoconf
  • 安装完毕,按提示添加环境配置;获取安装目录,一般在/usr/local//usr/local/Cellar/openssl/ 目录下,这里生成了1.0.2r目录
  • 找到php-config所在目录,这里是/Applications/MAMP/bin/php/php7.2.8/bin/php-config
  • 仍然在 ext/openssl目录下 ./configure --with-php-config=/Applications/MAMP/bin/php/php7.2.8/bin/php-config --with-openssl=/usr/local/Cellar/openssl/1.0.2r/
  • 注意!如果提示Cannot find OpenSSL’s <evp.h> 这个表明要么环境变量没配,要么openssl指定的路径不对!之前按照网上攻略来发现是/usr/local/Cellar/openssl/1.0.2r/ 写错了
  • 执行make
  • 执行make install
  • 如果成功,会出现open.so安装好了的地址 Installing shared extensions: /Applications/MAMP/bin/php/php7.2.8/lib/php/extensions/no-debug-non-zts-20170718/
  • 找到php.in 添加extension=openssl.so
  • 重启一下,这时候 phpinfo() 如果出现openSSL信息则表示安装成功

总结一下就是用源码重新编译出openssl.so,然后配置到MAMP的PHP里面。

接着就是怎么用:
简单版本:
https://blog.csdn.net/ranlv91/article/details/81916393

写回答

2回答

singwa

2019-05-24

咱们这个课程后面会升级下。之前的版本有点老了。


0
0

singwa

2019-05-24

赞。总结的很好。

0
0

PHP企业级实战,完成一套高可用高安全的App后台系统

轻轻松松开发一个安全可靠高效的多终端APP后台系统,可用于毕设

1263 学习 · 475 问题

查看课程