在本地计算机上使用 S3 类遇到 cURL 错误,但在主机上运行良好


Running into cURL error with S3 class on local machine but runs fine on host

我完全迷失了,我不确定是什么导致了这个错误:

致命错误:未捕获的异常"cURL_Exception",消息为"cURL 资源:资源 ID #17;cURL 错误:SSL 证书问题,请验证 CA 证书是否正常。 详细信息:错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败(cURL 错误代码 60)。有关错误代码的说明,请参见 http://curl.haxx.se/libcurl/c/libcurl-errors.html。 在 C:''Inetpub''wwwroot''htdocs''TestSite''src_ama''lib''requestcore''requestcore.class.php:824 堆栈跟踪: #0 C:''Inetpub''wwwroot''htdocs''TestSite''src_ama''services''s3.class.php(903): RequestCore->send_request() #1 C:''Inetpub''wwwroot''htdocs''TestSite''src_ama''services''s3.class.php(1625): AmazonS3->authenticate('mybucket', Array) #2 C:''Inetpub''wwwroot''htdocs''TestSite''class_SysFunc.php(794): AmazonS3->list_objects('mybucket', Array) #3 C:''Inetpub''wwwroot''htdocs''TestSite''sub_dashOverview.php(26): SysFunc->getCartonSize('1.41c388ab584f1...') #4 {main} 在 C:''Inetpub''wwwroot''htdocs''TestSite''src_ama''lib''requestcore''requestcore.class.php 在第 824 行抛出

我在我的

网站上进行此设置的方式,我有一个用于连接到 S3 的课程,它在我的主机帐户上运行良好。

类.php

    if(!class_exists('SysFunc')){
        class SysFunc{
            var $s3;
            var $bucket = 'mybucket';
            function __construct() {
                require_once ('amazon/sdk.class.php');
                $this->s3 = new AmazonS3();
            }
            ...More functions
        }
    }

我想知道它是否与我的 php.ini 文件或可能的 Apache 配置文件有关。

任何想法都会有所帮助。

您的本地 CA 文件可能已损坏。如果您可以访问实际的卷曲手柄,请尝试以下操作:curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);。

编辑:在AWS中,尝试$s 3->disable_ssl_verification();

打开 Amazon 开发工具包的配置文件

这是您填写访问密钥和私有密钥的那个,它被称为config.inc.php

靠近底部的选项"certificate_authority",默认情况下设置为 false。只需将其设置为 true,您就可以开始了

我遇到了同样的问题,当我更改上传文件的本地文件夹的权限时,一切都神奇地工作了。 将权限更改为 777。