コードロード

エラー討伐

【Laravel】本番環境で画像アップロードできないときに確認する箇所

課題

本番環境にて、下記のコードでアップロードできなかった。

ブラウザのネットワークタブで確認すると、500エラーとだけ表示される。

<?php

Storage::putFileAs('public/images', $file, $file_name);

Laravelのログを確認

storage/logs/laravel.log にエラー内容が出力されているはず。

[2022-08-14 10:27:40] production.ERROR: fopen(/var/www/プロジェクト名/storage/app/public/images/20220814102740.jpg): Failed to open stream: Permission denied {"userId":1,"exception":"[object] (ErrorException(code: 0): fopen(/var/www/プロジェクト名/storage/app/public/images/20220814102740.jpg): Failed to open stream: Permission denied at /var/www/プロジェクト名/vendor/league/flysystem/src/Adapter/Local.php:157)

権限エラーのよう。

解決方法

権限を付与してあげる。

$ pwd
/var/www/プロジェクト名
$ chmod -R 777 storage/

これで無事アップロードできた。

参考

qiita.com