php - laravel5.2 openssl_encrypt() 的问题?
巴扎黑
巴扎黑 2017-04-11 10:26:09
[PHP讨论组]

Call to undefined function IlluminateEncryptionopenssl_encrypt()

怎么回事啊,php是5.6.23,也开启了extension=php_openssl.dll,老是报这个错。

巴扎黑
巴扎黑

全部回复(5)
PHP中文网

你看看那里是不是:

$value = \openssl_encrypt(serialize($value), $this->cipher, $this->key, 0, $iv);
高洛峰

兄弟,我今天就为了你这个问题,注册个号,并告诉你答案。

1、从php安装根目录中拷贝 libeay32.dll 和 ssleay32.dll , 覆盖掉apache/bin 下的对应文件,
2、重启apache即可。

伊谢尔伦

看看PHPssl的扩展是否打开了。

PHP中文网

楼主解决了吗?我也遇到这个问题了,在Windows上面没问题,在ubuntu上面就不可以了,php版本都是一样的

PHP中文网

我也遇到过,不过自己解决了。
上面的方法都不算错,但都不完整。

问题起因:
缺少openssl的扩展功能。缺少有两种,一种是没有;一种是有,但程序找不到。

问题解决:
1、没有就添加上,是否加上了看phpinfo()。添加的方法就是extension=php_openssl.dll,如何添加不懂自己百度。

2、有,但程序提示找不到。应该也是楼主的问题。
版本不对应。 libeay32.dll 和 ssleay32.dll这两个文件。右键看版本,或者PHPINFO看版本。APACHE/BIN的文件,必须与PHP/EXT文件一致。我是用最新的1.0.2.10(1.0.2j)
PHP必须要5.6以上,一切正常。
否则PHPINFO会出现下面的:

OpenSSL Library Version OpenSSL 1.0.2j 26 Sep 2016

OpenSSL Header Version OpenSSL 1.0.1t 3 May 2016

(PHP5.5默认是1.0.1 我强制更换为1.0.2 后能用,但会出现上述版本不对应。如果使用5.6或7就没有问题,都是1.0.2。如果PHP5.3,PHP5.4是0.9.8,这个没有测试。因为我不用PHP5.3好多年了)

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号