【问题标题】:AWS SDK not found after setup using XAMPP and PEAR使用 XAMPP 和 PEAR 设置后未找到 AWS 开发工具包
【发布时间】:2011-01-28 10:42:10
【问题描述】:

我正在尝试在 EC2 实例上设置适用于 PHP 的 AWS 开发工具包,但无法让开发工具包正常工作。请注意,我是所有 AWS 服务的新手,而且我只编写过 PHP 脚本,以前从未配置过它。当我运行以下脚本时,我得到“Fatal error: Class 'AmazonEC2' not found in /opt/lampp/htdocs/index.php on line 6”:

require_once 'sdk.class.php';
$ec2 = new AmazonEC2(); //Line 6

据我所知,AmazonEC2 类位于:

/opt/lampp/lib/php/AWSSDKforPHP/services/ec2.class.php

我遵循了这个设置指南:http://aws.amazon.com/articles/PHP/4261

这里有一些细节:

  • EC2 实例:t1.Basic 32-bit Amazon Linux AMI 2010.11.1 Beta (AMI Id: ami-76f0061f) 的微节点
  • PHP 是使用 XAMPP 设置的。基本上解压到 /opt/lampp,它是自包含的。
  • 使用 PEAR 安装的 SDK。完成:
    • sudo /opt/lampp/bin/pear channel-discover pear.amazonwebservices.com
    • sudo /opt/lampp/bin/pear install aws/sdk

我的路径默认设置为“.:/opt/lampp/lib/php”。我尝试添加“.:/opt/lampp/lib/php/AWSSDKforPHP”,但这没有用。我尝试更改文件权限,但没有骰子。

我以前从未使用过 PEAR 或 XAMPP。关于如何让 SDK 与 PHP 一起工作的任何想法?我认为它必须只是一个 include_path 问题,但我不确定如何设置它来工作。 (我在更改 php.ini 后重置了 apache,所以这也不是问题)。

以下是我系统上的一些路径:

/opt/lampp/lib/php/AWSSDKforPHP
/opt/lampp/etc/php.ini
/opt/lampp/htdocs/index.php
/home/ec2-user/.aws/sdk/config.inc.php

【问题讨论】:

    标签: php amazon-web-services xampp


    【解决方案1】:

    有点老线程......嗯。

    我遇到了同样的问题,但在 Windows 上使用 WAMP 并使用 Amazon S3 而不是 EC2。添加以下内容解决了我的问题:

    require_once 'AWSSDKforPHP/sdk.class.php';
    

    按照其他人的建议,包括“AWSSDKforPHP/services/s3.class.php”,只是为其他缺失的类抛出了更多错误。

    我认为 PEAR 会自动执行此操作,但还要检查以确保 PEAR 文件夹位于 php.ini 文件的“include_path”设置中:

    include_path=".;C:\Program Files\wamp\bin\php\php5.2.11\pear"
    

    【讨论】:

      【解决方案2】:

      我在搜索可能的答案时发现了与您相同的 AWS 论坛主题:https://forums.aws.amazon.com/thread.jspa?threadID=59213

      您是否尝试过不使用 PEAR?他们还通过 git 和可下载的 .zip 文件提供安装。以我的经验,PEAR 有时会很讨厌而且不可靠。我当然不会向 PHP 或 CLI 新手推荐它。

      【讨论】:

      • 我将尝试非 PEAR 安装,看看是否有效。我对 PEAR 一点运气都没有。
      【解决方案3】:

      您是否在 php.ini 中更新了 PHP 的 include_path

      编辑:再看一遍,似乎你做到了。您是否尝试在您尝试运行的脚本中包含 services/ec2.class.php 文件?

      【讨论】:

        【解决方案4】:

        您很可能需要将“服务”文件夹添加到您的路径或以这种方式要求该类:

        require_once('services/ec2.class.php');
        

        【讨论】:

          【解决方案5】:

          我之前也遇到过类似的问题。 就我而言,sdk.class.php 位于我包含的不同文件夹中。

          所以你可能想检查 sdk.class 所在的路径, 可能在那里创建您自己的 .php 文件,其中包含几个函数,require_once 并确认您是否正在访问正确的路径。

          【讨论】:

            猜你喜欢
            • 2015-10-17
            • 2019-04-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-08-13
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多