AWS Beanstalk缺少sdk.class.php

时间:2012-06-13 03:36:46

标签: php amazon-web-services elastic-beanstalk

我将一个非常简单的php网页部署到AWS ElasticBeanstalk实例中。该文件在

之后立即失败
<?php
require_once('sdk.class.php');
// more code...

我可以从/ var / log / httpd / application-error_log看到缺少sdk.class.php:

[Wed Jun 13 03:30:15 2012] [error] [client 127.0.0.1] PHP Stack trace:
[Wed Jun 13 03:30:15 2012] [error] [client 127.0.0.1] PHP   1. {main}() /var/www/html/index.php:0
[Wed Jun 13 03:30:45 2012] [error] [client 127.0.0.1] PHP Warning:  require_once(sdk.class.php): failed to open stream: No such file or directory in /var/www/html/index.php on line 9
[Wed Jun 13 03:30:45 2012] [error] [client 127.0.0.1] PHP Stack trace:
[Wed Jun 13 03:30:45 2012] [error] [client 127.0.0.1] PHP   1. {main}() /var/www/html/index.php:0
[Wed Jun 13 03:30:45 2012] [error] [client 127.0.0.1] PHP Fatal error:  require_once(): Failed opening required 'sdk.class.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/html/index.php on line 9

默认情况下,每个ElasticBeanstalk实例都不应包含sdk.class.php吗?或者我错过了什么?我的笔记本上的代码运行正常,我正确安装和配置了sdk.class.php。

感谢

2 个答案:

答案 0 :(得分:2)

此解决方案的问题似乎是当自动扩展启动新实例时,它将不会安装在这些计算机上。

最好将其下载到您的项目文件夹中(以便在下一个版本中推送它)并从那里使用它。

答案 1 :(得分:0)

我最终得到了答案。

默认情况下,未在ElasticBeanstalk实例上安装AWS PHP SDK(我认为它应该!)。我必须首先安装自己的登录实例(通过ssh keypair)并成为root

sudo su

然后我使用http://pear.amazonwebservices.com/中的信息来安装SDK

pear install aws/sdk
pear upgrade aws/sdk

然后我复制了配置示例并使用我的AWS密钥和密钥

进行了更新
cp /usr/share/pear/AWSSDKforPHP/config-sample.inc.php /usr/share/pear/AWSSDKforPHP/config.inc.php

我还必须从

更改我的PHP代码
require_once('sdk.class.php');

require_once 'AWSSDKforPHP/sdk.class.php';

刷新了网页并且有效!