在本地计算机上使用S3类运行cURL错误但在主机上运行正常

时间:2012-06-26 18:27:45

标签: php apache curl amazon-s3 localhost

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

致命错误:未捕获的异常'cURL_Exception',消息'cURL resource:Resource 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中\测试网站\ src_ama \ LIB \ requestcore \ requestcore.class.php:824堆栈跟踪:#0 C:\的Inetpub \ wwwroot的\ htdocs中\测试网站\ src_ama \ SERVICES \ s3.class.php (903):RequestCore-> send_request()#1 C:\的Inetpub \ wwwroot的\ htdocs中\测试网站\ src_ama \服务\ s3.class.php(1625):AmazonS3->认证( 'mybucket',阵列)# 2 C:\的Inetpub \ wwwroot的\ htdocs中\测试网站\ class_SysFunc.php(794):AmazonS3-> list_objects( 'mybucket',阵列)#3 C:\的Inetpub \ wwwroot的\ htdocs中\测试网站\ sub_dashOverview.php(26) :SysFunc-> getCartonSize( '1.41c388ab584f1 ...')#4 {主}扔在C:\的Inetpub \ wwwroot的\ htdocs中\测试网站\ src_ama \ lib中\ requestcore \ requestcore.class.php上线824

我在网站上进行此设置的方式,我有一个类,我用它来连接到S3,它在我的主机帐户上运行得非常好。

class.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配置文件有关。

任何想法都会有所帮助。

3 个答案:

答案 0 :(得分:6)

您的本地CA文件可能已损坏。如果您可以访问实际的curl句柄,请尝试:curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,false);.

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

答案 1 :(得分:2)

打开Amazon SDK的配置文件

这是你填写你的访问密钥和密钥及其名为config.inc.php的那个

底部附近的

是一个选项'certificate_authority',默认情况下设置为false ..只需将其设置为true,你就应该好了

答案 2 :(得分:0)

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