【问题标题】:S3Client creation fails on linux server在 Linux 服务器上创建 S3Client 失败
【发布时间】:2014-03-13 19:03:20
【问题描述】:

我有这个代码:

<?php
    require('aws/aws-autoloader.php');
    echo "1";
    use Aws\S3\S3Client;
    echo "2";
    $s3Client = S3Client::factory(array(
        'key'    => 'mykey',
        'secret' => 'mysecret',
    ));
    echo "3";
    echo  "OK!";
?>

在我的机器上输出是“123OK!” (如预期)将其上传到服务器后,我只得到“12”(意味着对象的创建失败?)

我的本​​地机器运行 PHP 5.3.27,而服务器运行 5.5.5-1chl1~precise1

更新:

我得到的错误:

致命错误:未捕获的异常 'Guzzle\Common\Exception\RuntimeException' 带有消息“必须安装 PHP cURL 扩展才能使用 Guzzle。”在 /var/www/api/1.0/aws/Guzzle/Http/Client.php:70 堆栈跟踪:#0 /var/www/api/1.0/aws/Aws/Common/Client/AbstractClient.php(78): Guzzle\Http\Client->__construct('https://s3.amaz...', Object(Guzzle\Common\Collection)) #1

如何在 C2 上的 linux 上安装所需的东西?

【问题讨论】:

  • 这是我得到的:致命错误:未捕获的异常 'Guzzle\Common\Exception\RuntimeException' 并带有消息“必须安装 PHP cURL 扩展才能使用 Guzzle。”在 /var/www/api/1.0/aws/Guzzle/Http/Client.php:70 堆栈跟踪:#0 /var/www/api/1.0/aws/Aws/Common/Client/AbstractClient.php(78): Guzzle\Http\Client->__construct('s3.amaz...', Object(Guzzle\Common\Collection)) #1 - 如何在亚马逊托管的 linux 上安装它?

标签: php linux amazon-web-services amazon-s3


【解决方案1】:
sudo apt-get install php5-curl
sudo service apache2 restart

【讨论】:

  • 虽然这可能会解决问题,但最好至少在您的答案中添加更多 cmets 或解释,以便人们可以学习,而不仅仅是复制粘贴
  • 好点@Jasper。我只是遇到了同样的问题,并没有意识到安装后 apache 需要重新启动。所以这应该有效。它对我有用。
【解决方案2】:

错误信息说:

必须安装 PHP cURL 扩展才能使用 Guzzle。

所以……你需要安装 PHP cURL 扩展。

如何在亚马逊托管的 linux 上安装它?

这取决于操作系统。在 Ubuntu 中安装与在 Amazon Linux 中安装不同。

【讨论】:

    【解决方案3】:

    试试这个怎么样:

    <?php
    
    require('aws/aws-autoloader.php');
    
    use Aws\Common\Aws;
    
    $aws_access_key     =   '';     // AWS Access key
    $aws_access_security    =   '';     //  AWS Security Key
    $aws_default_region =   'ap-southeast-1';   //  Your Default Region
    $aws_default_scema      =   'http';             //  Default Protocol Schema
    
    // Instantiate the AWS client with your AWS credentials
    $aws = Aws::factory(array(
        'key'    => $aws_access_key,
        'secret' => $aws_access_security,
        'region' => $aws_default_region,
        'scheme' => $aws_default_scema,
    ));
    
    // Define S3client Object
    $s3Client   =   $aws->get('s3');
    
    // Test
    
    var_dump($s3Client);
    
    ?>
    

    应该可以。但我认为你应该使用 AWS sdk 使用的 composer 方法。

    如果您需要使用 s3 的指南或脚本,您可以使用我在 github 上的代码:https://github.com/arizawan/aiss3clientphp

    【讨论】:

      猜你喜欢
      • 2018-05-02
      • 1970-01-01
      • 2015-11-25
      • 2014-03-06
      • 1970-01-01
      • 2019-03-20
      • 1970-01-01
      • 2015-08-27
      • 2016-10-08
      相关资源
      最近更新 更多