首先检查我的PHP扩展目录是否正常;扩展名不存在, php_openssl.dll
然后我打开了我的 php.ini 文件,但我看不到任何 extension = php_openssl.dll 行要取消注释。
此外,我在谷歌搜索并看到有同样问题的人。 http://www.apachefriends.org/f/viewtopic.php?p=162623
但是,我也有
OPENSSL_CONF C:/xampp/apache/bin/openssl.cnf
...
openssl
OpenSSL support enabled
OpenSSL Library Version OpenSSL 0.9.8l 5 Nov 2009
OpenSSL Header Version OpenSSL 0.9.8l 5 Nov 2009
没有线条。我该怎么办?请分享您的建议。
答案 0 :(得分:103)
是的,您必须打开php.ini
并将分号删除为:
;extension=php_openssl.dll
如果您没有该行,请检查您是否拥有该文件(在我的电脑上D:\xampp\php\ext
)并将其添加到“动态扩展程序”部分中的php.ini
:
extension=php_openssl.dll
答案 1 :(得分:7)
[PHP_OPENSSL]
extension=php_openssl.dll
这就是答案。
答案 2 :(得分:2)
在xampp中,如果你的php.ini文件中没有“extension = php_openssl.dll”,那么将它添加到php.ini文件的“Windows Extensions”部分 并重新启动您的Apache。 它对我有用..
答案 3 :(得分:1)
我使用xampp。之前我在phpMailer中尝试了示例文件“test_smtp_gmail_basic.php”(你可以在这里下载phpMailer:https://github.com/Synchro/PHPMailer),但是我收到了以下错误:
邮件程序错误:以下发件人地址失败:xxx@gmail.com
在php.ini中注释掉; extension=php_openssl.dll
后,它现在正在运行。
答案 4 :(得分:1)
您需要编辑php.ini。这是4个简单的步骤。
找到你的php.ini文件。
$inipath = php_ini_loaded_file();
在文件中启用openssl:
extension=php_openssl.dll
打开
上的allow_url_fopenallow_url_fopen = On
重启apache,你就完成了!
答案 5 :(得分:1)
因此,我们做了什么工作才能使PHP中的openssl_pkey_new()
和所有其他openssl_
函数正常工作……
php_openssl.dll
中启用了扩展名php.ini
。已检查。openssl.cnf
(以及XAMPP中的其他两个目录)中是否存在xampp\apache\conf\
。已检查。OPENSSL_CONF
的完整路径的环境变量openssl.cnf
。已检查。仍然不起作用,并抛出诸如
的错误好的,这还有另外两件事要检查。
1。环境问题
从PHP脚本运行php_info()
,然后转到“ Apache Environment”部分。检查OPENSSL_CONF
的值。
惊奇。这不是我们在Windows系统设置中设置的。
解决方案很简单。在PHP脚本中设置环境变量。
putenv('OPENSSL_CONF=C:\xampp\apache\conf\openssl.cnf');
2。相对文件名有问题
现在,openssl_pkey_new()
可以工作了,但是openssl_pkey_export_to_file()
仍然不能工作,并且返回false
时没有任何进一步的解释?
检查已指定为输出文件名的文件名。只要您不指定完整路径,它就无法在Windows中工作。
$folder = realpath('../keyring');
$outfile = $folder.'/private.pem';
openssl_pkey_export_to_file($key, $outfile);
答案 6 :(得分:0)
步骤1:在您的php.ini
上注释掉;extension=php_openssl.dll
第2步:从PHP根文件夹复制libeay32.dll和ssleay32.dll并将其粘贴到您的Apache / bin文件夹
第3步:重新启动Apache
答案 7 :(得分:0)
PHP> 7发生了变化。这是我对PHP 7.2所做的事情。
步骤:1:取消注释extension=openssl
步骤:2:取消注释extension_dir = "ext"
步骤:3:重新启动xampp。
完成。
说明:(来自php.ini)
如果您希望自动加载扩展程序,请使用以下语法:
extension=modulename
注意:出于遗留原因,支持以前的PHP版本(extension=<ext>.so
和extension='php_<ext>.dll
)中使用的语法,并且在以后的PHP主版本中可能会弃用该语法。因此,请尽可能使用新的(extension=<ext>
)语法。
特殊说明:请确保正确设置extension_dir
指令。
答案 8 :(得分:0)
我假设这个问题是针对使用基于Windows的系统的人的。
确保您的php.ini文件中的扩展名为extension = php_openssl.dll没有分号。
然后确保已将C:/ xampp / apache / bin添加到您的环境路径中,以便在不将命令提示符移动到该目录C:/ xampp / apache / bin的情况下使用openssl
答案 9 :(得分:0)
虽然与此问题无关,但由于 WP migrate Pro docs 链接到此问题,我想我会在此处发布答案。
如果您在激活 DB Migrate Pro 而不是启用 SSL 时遇到问题,您只需在 wp-config 中添加一行代码
define( 'WPMDB_LICENCE', 'XXXXXXXXXXx' );