PHP OpenSSL 扩展在 Windows 7 上安装 TYPO3 6.2.2 时不起作用


PHP OpenSSL extension not working while installing TYPO3 6.2.2 on Windows 7

我已经在Windows 7上安装了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.

我试图在互联网上找到有关此错误的解决方案,但我无法解决此错误。

任何人都可以帮我找到解决方案吗?谢谢。

在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(不仅适用于 TYPO3 之外的每个 PHP 脚本(

  • 重新启动 xampp

链接/来源:

  • http://wiki.typo3.org/Exception/CMS/1318283565

  • http://www.typo3.net/forum/thematik/zeige/thema/116156/

要在Windows下在PHP上启用OpenSSL,必须采取三个步骤:

  1. 启用扩展 – 确保在 PHP 中取消注释此行.ini:

    extension=php_openssl.dll

  2. 将 PHP 文件夹添加到 Windows 的 PATH 环境变量中:

    控制面板 –>系统 –>高级系统设置 –>环境变量。
    在"系统变量"块中找到 Path 变量。
    在它前面加上c:'php;,或者无论你的PHP路径是什么。

  3. 为 Windows 创建一个额外的OPENSSL_CONF环境变量,其中包含 PHP 的 OpenSSL 配置文件的完整路径:

    控制面板 –>系统 –>高级系统设置 –>环境变量。
    在"系统变量"块中,单击"新建...">
    变量名称:OPENSSL_CONF
    变量值:C:'php'extras'ssl'openssl.cnf
    修改该值以匹配您的 PHP 安装目录!

重新启动 Windows,以便环境更改可以生效。

有关 Windows 下 PHP OpenSSL 支持的详细信息,请参见此处。

关于拼写错误3 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(上运行命令打开ssl,消息如下:

警告:无法打开配置文件:c:/openssl-1.0.1i-win32/ssl/openssl.cnf

将文件添加到那里,现在可以删除对环境变量 PATH 的添加。

添加OPENSSL_CONF对我也不起作用。

将全局环境变量OPENSSL_CONF设置为 %ProgramFiles(x86(%''PHP''Current''extras''openssl.cnf

以下解决方案可能只能通过单击Xampp中的apache_start.bat手动启动Apache-Server来工作,其他用例和服务器包未进行测试或涵盖。


处理 xampp 的多个版本,也许还有其他几个框架,我搜索了一种最适合以下要求的方法:

  • 框架永远不必知道可执行文件openssl文件的配置或路径(在窗口中:openssl.exe(。
  • 启动
  • 哪个服务器并不重要,总是找到适合服务器版本的 openssl 的正确路径。这避免了openssl可能使用PHP或Apache-Server以外的其他版本编译的问题。
  • 变量永远不必不灵活和静态地添加到 PATH 变量中。相反,只有在服务器正在运行时才能添加它们。
  • 停止一个服务器版本并启动另一个服务器版本是在没有进一步操作的情况下切换到正确的openssl.exeopenssl.cnf路径。

基于这些开发人员要求,我描述的步骤与此页面上的运行答案略有不同:

    通过
  1. 删除以下行的前导分号,在每个服务器版本(即 xampp-1、xampp-2 等(的 php.ini -文件中启用 openssl: ;extension=php_openssl.dll

  2. 打开每个服务器版本的文件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'替换为指向相应服务器的实际路径。

  3. 通过apache_start.bat或 xampp 控制面板重新启动 xampp。

此解决方案自然也适用于仅一台服务器,并且具有在系统范围内定义有限 PATH 变量的优势。

更新如果您仍然遇到与 TYPO3 相关的问题,无论您选择哪种方法,请检查安装工具中的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');