首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何启用HTTPS流包装器

如何启用HTTPS流包装器
EN

Stack Overflow用户
提问于 2010-02-21 21:10:07
回答 3查看 64K关注 0票数 21

我在windows系统上安装了php5,并尝试使用命令行控制台执行以下脚本:

代码语言:javascript
复制
<?php
// load in credentials
$creds = parse_ini_file('/etc/aws.conf');

// Define query string keys/values
$params = array(
    'Action' => 'DescribeAvailabilityZones',
    'AWSAccessKeyId' => $creds['access_key'],
    'Timestamp' => gmdate('Y-m-d\TH:i:s\Z'),
    'Version' => '2008-05-05',
    'ZoneName.0' => 'us-east-1a',
    'ZoneName.1' => 'us-east-1b',
    'ZoneName.2' => 'us-east-1c',
    'SignatureVersion' => 2,
    'SignatureMethod' => 'HmacSHA256'
);

// See docs
// http://tr.im/jbjd
uksort($params, 'strnatcmp');
$qstr = '';
foreach ($params as $key => $val) {
    $qstr .= "&{$key}=".rawurlencode($val);
}
$qstr = substr($qstr, 1);

// Signature Version 2
$str = "GET\n"
     . "ec2.amazonaws.com\n"
     . "/\n"
     . $qstr;

// Generate base64-encoded RFC 2104-compliant HMAC-SHA256
// signature with Secret Key using PHP 5's native 
// hash_hmac function.
$params['Signature'] = base64_encode(
    hash_hmac('sha256', $str, $creds['secret_key'], true)
);

// simple GET request to EC2 Query API with regular URL 
// encoded query string
$req = 'https://ec2.amazonaws.com/?' . http_build_query(
    $params
);
$result = file_get_contents($req);

// do something with the XML response
echo $result;

但它显示无法找到包装器"https“,并询问我是否在配置PHP时忘记启用它。

问题是什么?如何解决?

EN

回答 3

Stack Overflow用户

发布于 2010-03-10 20:27:03

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

代码语言:javascript
复制
<?php var_dump(stream_get_wrappers()); ?>

2:如果在列表中看不到"https“,请添加到/取消注释php.ini

代码语言:javascript
复制
extension=php_openssl.dll

重新启动您的服务器*,您就完成了。

*如果服务器无法重启,请从某个地方下载php_openssl.dll并将其放在php.ini文件中定义的扩展目录中,重启服务器,说几句地狱玛丽的话并祈祷。

票数 43
EN

Stack Overflow用户

发布于 2014-01-09 00:44:12

打开php.ini。找到这一行:

代码语言:javascript
复制
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
; ...
;extension=ext/php_oci8.dll
extension=ext/php_openssl.dll         ; <---- you want this
;extension=ext/php_pdo_firebird.dll
; ...

您希望取消对extension=ext/php_openssl.dll行的注释。确保ext/目录中有一个pho_openssl.dll文件,它相对于您的php.ini (或者可能更重要的是与ini中的extension_dir变量相关)。

票数 4
EN

Stack Overflow用户

发布于 2014-06-23 15:45:14

很简单。我犯了这个错误,让我很头疼。在php.ini文件中启用(取消注释行extension=php_openssl.dll)。这将解决问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2305954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档