在Windows7上安装Typo3 6.2.2时,PHP OpenSSL扩展不起作用

我已经在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.

我试图find关于这个错误在互联网上的解决scheme,但我不能解决这个错误。

任何人都知道,你能帮我find解决scheme吗? 谢谢。

在XAMPP和Windows Vista上为我工作的解决方案:

  • 激活PHP模块openssl

    打开php.ini并取消注释(删除';'):

    ;extension=php_openssl.dll

    通过运行phpinfo()仔细检查是否启用了扩展。

  • 用值添加一个系统环境变量“OPENSSL_CONF”

    C:\xampp\apache\conf\openssl.cnf

    假设你将xampp安装到了C:\ xampp中。

  • 将路径设置为C:\ xampp \ apache \ bin中的“openssl.exe”

    • ...\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

链接/来源:

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

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

    extension=php_openssl.dll

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

    控制面板 – >系统 – >高级系统设置 – >环境变量。
    在System Variables块中找到Path变量。
    Prepend c:\php; 在它前面,或者任何你的PHP路径。

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

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

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

在Windows下的PHP OpenSSL支持细节可以在这里找到。

在typo3上6.2.7在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也没有为我工作。

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

以下解决方案可能只能通过点击Xampp内的apache_start.bat手动启动Apache-server,其他用例和服务器包未经测试或覆盖。


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

  • 一个框架永远不需要知道可执行文件openssl-file的配置或路径(在windows: 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相关的问题,无论您选择的方法如何,请检查installtool中的cookie_domain。 它应该适用于当前域或空。 如果您从另一个服务器复制项目(即开发),则可能会发生错误的Cookie域