php - laravel5.2 openssl_encrypt() 的问题?
巴扎黑
巴扎黑 2017-04-11 10:26:09
0
6
920

Call to undefined function IlluminateEncryptionopenssl_encrypt()

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

巴扎黑
巴扎黑

Antworte allen(6)
洪涛

你看看那里是不是:

$value = \openssl_encrypt(serialize($value), $this->cipher, $this->key, 0, $iv);
小葫芦

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

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

阿神

我也遇到这个问题了,但我解决掉了,因为laravel 5需要php 5.6环境,我开发电脑上只有php5.5(win10)于是下载 php5.6 并解压并,然后apache 2.4的httpd.ini 升级php版本(我保留了多版本,方便切换,以下的配置是正确的),出现你这个问题是因为(LoadModule指向了php5.5的目录,而PHPIniDir却是php5.6的目录)。

# php5.5 support
#LoadModule php5_module D:/php-5.5.37/php5apache2_4.dll
#AddType application/x-httpd-php .php .html .htm
# configure thepath to php.ini
#PHPIniDir "D:/php-5.5.37"

# php5.6 support
LoadModule php5_module D:/php-5.6.25/php5apache2_4.dll
AddType application/x-httpd-php .php .html .htm
# configure thepath to php.ini
PHPIniDir "D:/php-5.6.25"

# php7 support
#LoadModule php7_module D:/php-7.0.8/php7apache2_4.dll
#AddType application/x-httpd-php .php .html .htm
# configure thepath to php.ini
#PHPIniDir "D:/php-7.0.8"
伊谢尔伦

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

Ty80

楼主解决了吗?我也遇到这个问题了,在Windows上面没问题,在ubuntu上面就不可以了,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好多年了)

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage