我将一个非常简单的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。
感谢
答案 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';
刷新了网页并且有效!