【问题标题】:Attempted to call function "openssl_pkey_get_private" from namespace "WAYF"尝试从命名空间“WAYF”调用函数“openssl_pkey_get_private”
【发布时间】:2018-01-16 23:20:17
【问题描述】:

我收到此错误消息

尝试从命名空间“WAYF”调用函数“openssl_pkey_get_private”

我正在将 symfony 版本从 symfony2 升级到 symfony3,“WAYF”是我的捆绑包,并且

我有一个类名为“CustomLogin.php”

在那个类中,我声明了一个函数“function prepareparamsforjs(){}”和

在该函数中,我使用参数“$privatekey”和“$privatekeypass”调用“openssl_pkey_get_private()”函数来获取私钥

但我收到了上述错误消息。

谁能告诉我如何解决这个问题。

提前致谢!...

【问题讨论】:

    标签: php symfony symfony-3.3 php-7.2


    【解决方案1】:

    恕我直言,您没有在 PHP 中加载 OpenSSL 扩展 (http://php.net/manual/en/book.openssl.php),因此解析器正试图在当前命名空间(即 WAYF)中找到它。

    验证 OpenSSL 扩展是否已加载的快速方法是运行:

    var_dump(extension_loaded('openssl'));
    

    【讨论】:

    • 是的,在 var_dump(extension_loaded('openssl')); 之后我得到 bool(false) 我应该如何解决这个问题,如何包含这个 openssl?我在 php.ini 文件中检查了扩展是否启用“extension=php_openssl.dll”
    • 1.确保您正在检查/编辑正确的 php.ini - 在 Windows 上,有一些 PHP 发行版使用 C:\Windows\php.ini 等。使用的 php.ini 的位置可以通过 'phpinfo();' 检查, 2. 确保您要加载的扩展名的行没有被注释, 3. 检查 php.ini 中的extension_dir 参数是否指向扩展dll所在的文件夹
    • 是的,实际上我安装了各种版本的PHP,并且当前php版本的路径没有在“环境变量”中设置。这就是问题发生的原因。我已经设置了环境变量路径,现在它工作正常。谢谢:)
    猜你喜欢
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 2017-09-12
    • 1970-01-01
    • 2016-12-13
    • 2020-04-29
    • 1970-01-01
    相关资源
    最近更新 更多