S3のバケットを作成し、herokuでの環境変数も設定したのにherokuで画像アップロードが動かない
画像アップロードをしようとするとserver errorになってしまっていた。
初めはS3への接続の問題かと思ったがローカルでできているし、環境変数の設定も間違っていない。
##解決方法
まず500エラーのみ表示される状態からエラーの内容を表示されるようにする。
herokuでは.envファイルを読み込まないのでAWSのキー設定の他にAPP_DEBUGも設定されていない、つまりはAPP_DEBUG=falseの状態になっている。(本番環境ではfalseにするべき)
そのために以下のコマンドでエラーメッセージを出力されるように設定する
heroku config:set APP_DEBUG=true
そして画像アップロードの際のエラーを読むとGD extensionが入っていないとのこと。
なのでcomposer require ext-gdでGDのライブラリをインストールする。
すると画像アップロードに成功した。
つまづいた時はエラーメッセージを表示できるようにして、しっかりと読むこと。
追記
S3を使う際にflysystemをcomposerでインストールしたが、バージョン2.0以降だとLaravel8では動作しないので1.0をインストールすること。