我在window7上安装了Typo3 6.2.2,但是收到的错误信息如下:
PHP OpenSSL extension not working
Something went wrong while trying to create a new private key for testing. Please check the integration of the PHP OpenSSL extension and if it is installed correctly.
我试图在互联网上找到有关此错误的解决方案,但我无法解决此错误。
任何人都知道,你能帮我找到解决方案吗?感谢。
答案 0 :(得分:30)
在XAMPP和Windows Vista上对我有用的解决方案:
激活PHP模块openssl
打开php.ini并取消注释(删除';'):
;extension=php_openssl.dll
通过运行phpinfo()来仔细检查扩展是否已启用。
使用值
添加系统环境变量“OPENSSL_CONF” C:\xampp\apache\conf\openssl.cnf
...假设您已将xampp安装到C:\ xampp中。
设置'openssl.exe'的路径 ,位于C:\ xampp \ apache \ bin
将$TYPO3_CONF_VARS['SYS']['binSetup']
设置为
...\htdocs\typo3_src-6.2.x\typo3\sysext\core\Configuration\DefaultConfiguration.php
至'openssl=c:/xampp/apache/bin/openssl.exe'
或将c:\xampp\apache\bin
附加到环境变量PATH(不仅适用于每个PHP脚本TYPO3)
重新启动xampp
链接/来源:
答案 1 :(得分:7)
要在Windows下在PHP上启用OpenSSL,必须采取三个步骤:
启用扩展程序 - 确保在php.ini中取消注释此行:
extension=php_openssl.dll
将PHP文件夹添加到Windows的PATH环境变量中:
控制面板 - >系统 - >高级系统设置 - >环境变量。
在“系统变量”块中找到“路径”变量
在它前面加上c:\php;
,或者在你的PHP路径前面。
为Windows创建一个额外的OPENSSL_CONF环境变量,其中包含PHP的OpenSSL配置文件的完整路径:
控制面板 - >系统 - >高级系统设置 - >环境变量。
在System Variables块中,单击New ...
变量名称:OPENSSL_CONF
变量值:C:\php\extras\ssl\openssl.cnf
修改该值以匹配PHP安装目录!
重新启动Windows,以便环境更改生效。
可以在here找到有关Windows下PHP OpenSSL支持的详细信息。
答案 2 :(得分:3)
on typo3 6.2.7on win7 XAMPP 1.8.3
openSSL错误的解决方案是创建 C:\ openssl-1.0.1i-win32 \ ssl 文件夹并放入 E:\ Portables \ xampp \ apache \ conf \ openssl.cnf 进去吧。我从德国网站上得到了一个方向。
我如何找到它(以防万一版本更改),在XAMPP控制面板的shell中,openssl命令给出了
警告:无法打开配置文件:E:/Portables/xampp/apache/bin/openssl.cnf。
但是添加文件并没有帮助。我添加并删除了文件。
将;E:\Portables\xampp\apache\bin
添加到PATH环境变量(系统属性 - >高级)。在CMD窗口(而不是XMPP shell)上运行命令openssl,消息:
警告:无法打开配置文件:c:/openssl-1.0.1i-win32/ssl/openssl.cnf
在那里添加文件,现在可以删除对环境变量PATH的添加。
添加OPENSSL_CONF
对我来说也不起作用。
答案 3 :(得分:0)
将全局环境变量OPENSSL_CONF设置为%ProgramFiles(x86)%\ PHP \ Current \ extras \ openssl.cnf
答案 4 :(得分:0)
以下解决方案可能只能通过单击Xampp中的apache_start.bat
手动启动Apache-Server来工作,其他用例和服务器包未经过测试或覆盖。
处理xampp的几个版本以及可能还有其他几个框架我搜索了一种最符合以下要求的方法:
openssl.exe
)。openssl.exe
和openssl.cnf
的正确路径。根据这些开发人员要求,我描述的步骤与此页面上的运行答案略有不同:
通过删除以下行的前导分号,在每个服务器版本的php.ini
- 文件(即xampp-1,xampp-2等)中启用openssl:
;extension=php_openssl.dll
打开每个服务器版本的文件apache_start.bat
并替换
apache\bin\httpd.exe
通过以下片段:
SET OPENSSL_CONF=C:\xampp-x\apache\conf\openssl.cnf
IF EXIST C:\xampp-x\apache\bin SET PATH=%PATH%;C:\xampp-x\apache\bin
apache\bin\httpd.exe
请注意,您到处都会将C:\xampp-x\
替换为相应服务器的真实路径。
通过apache_start.bat或xampp-control-panel重新启动xampp。
此解决方案自然也适用于只有一台服务器,并且在系统范围内定义了有限的PATH-Variables优势。
<强>更新强> 如果您仍然遇到与TYPO3相关的问题,无论您选择哪种方法,请检查installtool中的cookie_domain。它应该适用于当前域或为空。 如果您从其他服务器复制项目,即开发,则可能会发生错误的cookie-domain 。
答案 5 :(得分:0)
添加类似于"config" => "D:/xampp/php/extras/openssl/openssl.cnf",
的路径即可解决此问题。
$key = openssl_pkey_new([
"config" => "D:/xampp/php/extras/openssl/openssl.cnf",
'digest_alg' => 'aes256',
'private_key_type' => OPENSSL_KEYTYPE_RSA,
'encrypt_key' => false,
'encrypt_key_cipher' => OPENSSL_CIPHER_AES_256_CBC,
]);
openssl_pkey_export_to_file($key, $this->folder . '/private.pem');