我在Windows 7上安装了TYPO3 6.2.2,但是遇到以下错误信息:
PHP OpenSSL 扩展不起作用。在尝试创建新的测试私钥时出现了问题。请检查PHP OpenSSL扩展的集成和正确安装情况。
我尝试在互联网上寻找关于此错误的解决方案,但无法解决这个bug。
有人能帮助我找到解决方案吗?谢谢。
我在Windows 7上安装了TYPO3 6.2.2,但是遇到以下错误信息:
PHP OpenSSL 扩展不起作用。在尝试创建新的测试私钥时出现了问题。请检查PHP OpenSSL扩展的集成和正确安装情况。
我尝试在互联网上寻找关于此错误的解决方案,但无法解决这个bug。
有人能帮助我找到解决方案吗?谢谢。
适用于我在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 中
要么在 ...\htdocs\typo3_src-6.2.x\typo3\sysext\core\Configuration\DefaultConfiguration.php
中设置 $TYPO3_CONF_VARS['SYS']['binSetup']
为 'openssl=c:/xampp/apache/bin/openssl.exe'
要么将 c:\xampp\apache\bin
追加到环境变量PATH中(对每个PHP脚本都有效,不仅限于TYPO3)
重新启动 XAMPP
链接/来源:
SetEnv
指令设置的变量。在意识到这一点之前,我花了相当长的时间。 - Anton Boritskiy启用扩展 - 确保在 php.ini 中取消注释此行:
extension=php_openssl.dll
将 PHP 文件夹添加到 Windows 的 PATH 环境变量中:
控制面板 -> 系统 -> 高级系统设置 -> 环境变量。
在“系统变量”块中找到“Path”变量。
在前面加上 c:\php;
,或者你的 PHP 路径。
为 Windows 创建一个额外的 OPENSSL_CONF 环境变量,其中包含 PHP OpenSSL 配置文件的完整路径:
控制面板 -> 系统 -> 高级系统设置 -> 环境变量。
在“系统变量”块中点击新建…
变量名:OPENSSL_CONF
变量值:C:\php\extras\ssl\openssl.cnf
修改该值以匹配你的 PHP 安装目录!
重新启动 Windows 以便环境更改生效。
有关 Windows 下 PHP OpenSSL 支持的详细信息,请参见此处。
但是将文件添加到该位置并不能解决问题。 我添加并删除了该文件。WARNING: can't open config file: E:/Portables/xampp/apache/bin/openssl.cnf.
;E:\Portables\xampp\apache\bin
添加到PATH环境变量中(系统属性 ->高级),在CMD窗口(而不是XMPP shell)中运行openssl命令,信息如下:
将文件添加到该位置后,可以删除对环境变量PATH的修改。WARNING: can't open config file: c:/openssl-1.0.1i-win32/ssl/openssl.cnf
OPENSSL_CONF
添加也无法解决问题。apache_start.bat
手动启动Apache服务器,其他用例和服务器包未经测试或覆盖。
处理多个版本的xampp和可能还有其他几个框架,我寻找了一种最适合以下要求的方法:
openssl.exe
)。openssl.exe
和openssl.cnf
正确路径而无需进一步操作。基于这些开发人员要求,我描述的步骤与此页面上的运行答案略有不同:
启用每个服务器版本(例如xampp-1、xampp-2等)的php.ini
文件中的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控制面板重新启动xampp。
这个解决方案自然也适用于只有一个服务器,并具有全局定义的受限PATH变量的优点。
更新 如果您仍然遇到 TYPO3 相关的问题,无论您选择了哪种方法,请检查 installtool 中的 cookie_domain。它应该适用于当前域或为空。 如果您从另一个服务器复制项目(例如开发),可能会出现错误的 cookie 域。
"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');