2

我将一个非常简单的 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

sdk.class.php 不应该默认包含在每个 ElasticBeanstalk 实例中吗?还是我错过了什么?该代码在我正确安装和配置了 sdk.class.php 的笔记本上运行良好。

谢谢

4

2 回答 2

2

这个解决方案的问题似乎是,当自动缩放启动新实例时,它不会安装在这些机器上。

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

于 2012-07-05T14:55:42.107 回答
0

我最终自己得到了答案。

默认情况下,AWS PHP SDK 不会安装在 ElasticBeanstalk 实例上(我认为它应该安装!)。我必须先安装自己登录到实例(通过 ssh 密钥对)并成为 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';

刷新了网页,它工作了!

于 2012-06-13T14:38:04.360 回答