2011-12-19 123 views
0

我遇到了AWS和PHP SDK的一個非常奇怪的錯誤。當我的筆記本電腦使用本地服務器時,我可以用我的PHP代碼連接到S3並將對象存儲在我的存儲桶中。我也可以在我們的測試/登臺服務器上連接到S3。但是,在我們的生產服務器上,當我嘗試連接時,我不斷收到以下錯誤:PHP CURL錯誤與AWS

cURL資源:資源ID#8; cURL錯誤:問題與SSL CA證書(路徑?訪問權限?)(77)

我已經嘗試在AWS的config.inc.php文件中添加此行,這是AWS論壇中提到的解決方案:

define('AWS_CERTIFICATE_AUTHORITY',true);

但是錯誤仍然存​​在。任何想法可能是錯誤的,或者我可以如何解決這樣的問題?

下面是它在Apache的錯誤日誌中說:

關於連接()到mydb.s3.amazonaws.com端口443(#0) *試圖223.33.211.223 ... *連接 *連接到mydb.s3.amazonaws.com(223.33.211.223)端口443(#0) *使用certpath:/etc/pki/nssdb初始化NSS *無法初始化NSS數據庫 * NSS錯誤-8023 *關閉連接#0 * SSL證書問題(路徑訪問權限)

乾杯!

+0

你使用的是最新的SDK ...? – 2011-12-19 11:59:14

+0

是的,我正在使用PHP SDK 1.5.0 – 2011-12-20 02:50:40

回答

0

原來NSS數據庫存在問題。 apache的錯誤日誌中示出這樣的:與證書路徑

初始化NSS:的/ etc/PKI/nssdb *無法初始化NSS數據庫 * NSS錯誤-8023

生成新的NSS數據庫後,重新起動apache,問題解決了。

5

在代碼本身,我們可以添加以下行,以避免用於測試目的的致命錯誤。

error_reporting(E_WARNING); 

$s3 = new AmazonS3(); 
$s3->disable_ssl(); 
$s3->disable_ssl_verification(); 

否則,我們將在我們的php.ini文件中爲SSL證書添加以下行。

[PHP] 
curl.cainfo = "C:\xampp\htdocs\aws\sdk\lib\requestcore\cacert.pem" 
+0

我的存儲桶名稱中有小點,此信息幫助我使用'$ s3-> list_objects()'。謝謝! – Tom 2013-01-19 20:02:27