如何在AWS EC2上启用openssl for PHP(仅用于后端调用,不用于传入流量)?

如何在AWS EC2上启用openssl for PHP(仅用于后端调用,不用于传入流量)?,php,ssl,amazon-web-services,https,amazon-ec2,Php,Ssl,Amazon Web Services,Https,Amazon Ec2,以下是使用标准AWS EC2设置尝试使用file_get_内容从远程安全服务器提取文件时收到的错误: PHP致命错误:未捕获的异常“ErrorException”带有消息 'file\u get\u contents:找不到包装器https-您找到了吗 配置PHP时忘记启用它?“ 如何在AWS上修复此问题 运行var_dumpstream_get_包装器,方法是将其放入自己的PHP文件中。结果将类似于:在本例中,它应该显示https,但它没有 通过运行以下命令安装php_openssl包: zy

以下是使用标准AWS EC2设置尝试使用file_get_内容从远程安全服务器提取文件时收到的错误:

PHP致命错误:未捕获的异常“ErrorException”带有消息 'file\u get\u contents:找不到包装器https-您找到了吗 配置PHP时忘记启用它?“

如何在AWS上修复此问题

运行var_dumpstream_get_包装器,方法是将其放入自己的PHP文件中。结果将类似于:在本例中,它应该显示https,但它没有

通过运行以下命令安装php_openssl包:

zypper安装php openssl

因为您最有可能使用Suse Linux。否则,请使用yum而不是zypper

使用以下命令重新启动apache:

rcapache2重启

再次运行var_dumpstream_get_wrappers文件:

如您所见,我们现在有了https包装器

我原本以为我们需要调整/etc/php5/cli/php.ini。但是在这个过程的最后,您可以看到my php.ini仍然注释掉了php_openssl


另外,我在整个过程中都是以root用户的身份运行的,因此您可能需要在每个命令之前以root用户的身份运行或添加sudo。

1:检查安装了哪些包装器

2:如果在列表中没有看到https,请从php.ini添加/取消注释

array(7) {
  [0]=>
  string(3) "php"
  [1]=>
  string(4) "file"
  [2]=>
  string(4) "glob"
  [3]=>
  string(4) "data"
  [4]=>
  string(4) "http"
  [5]=>
  string(3) "ftp"
  [6]=>
  string(13) "compress.zlib"
}
array(9) {
  [0]=>
  string(3) "php"
  [1]=>
  string(4) "file"
  [2]=>
  string(4) "glob"
  [3]=>
  string(4) "data"
  [4]=>
  string(4) "http"
  [5]=>
  string(3) "ftp"
  [6]=>
  string(5) "https"
  [7]=>
  string(4) "ftps"
  [8]=>
  string(13) "compress.zlib"
}
cat /etc/php5/cli/php.ini | grep openssl
;extension=php_openssl.dll
extension=php_openssl.dll