我目前正在我的laravel设置上设置amazon s3(第一次使用AWS做任何事情),而且我遇到了一些麻烦。作为参考,我使用的是XAMPP v.3.2.2和PHP 7.0.5。也许有人可以告诉我哪里出错了。
首先,我将这些添加到我的composer.json文件中:
"require": {
"graham-campbell/flysystem": "^3.0",
"league/flysystem-aws-s3-v3": "^1.0"
},
并运行了作曲家更新。
接下来,我将其添加到我的filesystems.php文件中:
's3' => [
'driver' => 's3',
'key' => 'A--------edited out for stackoverflow-------WA',
'secret' => 'h-------------edited out for stackoverflow-------------B',
'region' => 'us-east-1',
'bucket' => 'commendmeus',
],
最后我尝试做一个测试以确保一切正常。在我的路线文件中,我添加了:
use Illuminate\Support\Facades\Storage;
get('test', function () {
echo 123;
$s3 = Storage::disk('s3');
$s3->put('myfile.txt', 'test file', 'public');
});
不幸的是,我遇到了一个错误:
WrappedHttpHandler.php中的S3Exception第192行:执行错误 “ListObjects”上 “https://s3.amazonaws.com/commendmeus?prefix=myfile.txt%2F&max-keys=1&encoding-type=url”; AWS HTTP错误:cURL错误60:SSL证书问题:无法获取 本地发行人证书(见 http://curl.haxx.se/libcurl/c/libcurl-errors.html)
以下是参考屏幕截图:
我对SSL一无所知,虽然我在stackoverflow上看到类似于我的错误,但它可能就像是在给我读中文。任何人都可以帮助我解决正确的行动方案吗?
答案 0 :(得分:1)
此问题通常是由PHP设置中缺少cacert.pem引起的。
1)从https://curl.haxx.se/ca/cacert.pem
下载cacert.pem2)将cacert.pem复制到PHP目录(或任何位置)。
3)修改你的php.ini以包含与这些类似的行。注意:对于您的系统,路径必须是绝对的和正确的(例如,Windows使用C:\ path \ cacert.pem):
curl.cainfo = /路径/ cacert.pem
openssl.cafile = /路径/ cacert.pem
答案 1 :(得分:0)
请避免使用localhost
,尝试使用主机名命名您的本地域名,并获取证书(ssl),并且应该可以正常工作:
实施例:
https://local.dev