2012-06-13 60 views
2

我在AWS ElasticBeanstalk實例中部署了一個非常簡單的php網頁。該文件失敗之後AWS Beanstalk缺失sdk.class.php

<?php 
require_once('sdk.class.php'); 
// more code... 

我可以在/ var /日誌/的httpd /應用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。

謝謝

回答

0

我最終自己得到了答案。

AWS PHP SDK沒有默認安裝在ElasticBeanstalk實例上(我認爲它應該!)。我必須先安裝自己登錄到該實例(通過SSH密鑰對),併成爲根

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 

而且我也不得不從

012改變我的PHP代碼
require_once('sdk.class.php'); 

require_once 'AWSSDKforPHP/sdk.class.php'; 

刷新網頁,它的工作!

+2

如果你滿意你的回答你問題請將其標記爲接受的答案。 – Nick

+0

+1用於跟蹤您的解決方案,謝謝! –

+0

當您的實例被替換時,這會突然失敗。 n0mad的答案是要走的路。 – Nestor

2

此解決方案的問題似乎是,當自動縮放啓動新實例時,它將不會安裝在這些機器上。

更好的將它下載到您的項目文件夾(爲了推動下一個版本),並從那裏使用它。