AWS SDK не найден после установки с использованием XAMPP и PEAR - PullRequest
2 голосов
/ 28 января 2011

Я пытаюсь настроить AWS SDK для PHP на экземпляре EC2, но у меня возникают проблемы с получением SDK для работы.Хочу отметить, что я новичок во всех сервисах AWS, и я написал только сценарии PHP, но никогда раньше не настраивал их.Когда я запускаю следующий скрипт, я получаю « Неустранимая ошибка : класс 'AmazonEC2' не найден в / opt / lampp / htdocs / index.php в строке 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.Micro узел Basic 32-bit Amazon Linux AMI 2010.11.1 Beta (AMI Id: ami-76f0061f)
  • PHP настроен с использованием XAMPP.В основном распакуйте в / opt / lampp, где он самодостаточен.
  • SDK установлен с использованием PEAR.Сделано с:
    • sudo / opt / lampp / bin / pear канал-Discover pear.amazonwebservices.com
    • sudo / opt / lampp / bin / pear установить aws / sdk

Мой путь по умолчанию был установлен на ".: / Opt / lampp / lib / php".Я попытался добавить ".: / Opt / lampp / lib / php / AWSSDKforPHP", но это не сработало.Я пытался изменить права доступа к файлам, но без кубиков.

Я никогда раньше не использовал PEAR или XAMPP.Любые идеи о том, как я могу получить SDK работать с PHP?Я думаю, что это просто проблема include_path, но я не уверен, что нужно настроить, чтобы это работало.(Я сбрасываю apache после изменения php.ini, чтобы это тоже не проблема).

Вот несколько путей в моей системе:

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

Ответы [ 5 ]

3 голосов
/ 25 февраля 2011

Вид старой нити ... Мех.

У меня была такая же проблема, но с использованием WAMP в Windows и использованием Amazon S3 вместо EC2. Добавление следующего include решило мою проблему:

require_once 'AWSSDKforPHP/sdk.class.php';

Включая «AWSSDKforPHP / services / s3.class.php», в соответствии с тем, что предлагали другие, просто добавлено больше ошибок для других отсутствующих классов.

Я думаю, что PEAR делает это автоматически, но также проверяет, находится ли папка PEAR в настройке «include_path» вашего файла php.ini:

include_path=".;C:\Program Files\wamp\bin\php\php5.2.11\pear"
1 голос
/ 02 февраля 2011

Я нашел вашу идентичную ветку форума AWS при поиске возможного ответа: https://forums.aws.amazon.com/thread.jspa?threadID=59213

Вы пробовали НЕ использовать грушу? Они также обеспечивают установку через git и загружаемый файл .zip. По моему опыту, груша может быть скупой и ненадежной время от времени. Я, конечно, не рекомендовал бы это людям, плохо знакомым с PHP или CLI.

0 голосов
/ 04 февраля 2011

У меня раньше была похожая проблема. В моем случае sdk.class.php находился в другой папке, куда я включил.

Так что вы можете проверить путь к sdk.class, вероятно, создайте свой собственный файл .php там с парой функций, их требуют require_once и подтвердите, если вы используете правильный путь.

0 голосов
/ 01 февраля 2011

Скорее всего, вам нужно либо добавить папку «services» в ваш путь, либо указать класс следующим образом:

require_once('services/ec2.class.php');
0 голосов
/ 31 января 2011

Обновили ли вы свой PHP include_path в php.ini?

Редактировать: На второй взгляд, похоже, вы сделали.Вы пытались включить файл services/ec2.class.php в скрипт, который пытаетесь запустить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...