0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Docker環境の Laravel10 で "laravel allowed memory size of *** bytes exhausted (tried to allocate *** bytes)" とエラーが出た時の対処法

Last updated at Posted at 2023-12-24

結論

php artisan を実行するディレクトリで、chmod 707 -R storageを実行すれば解決した(私の場合では)。

何があったか

未知(エラー)との遭遇

ローカル開発環境をDockerで新規構築して、Xdebug入れたりログの出力先などのphpの調整をしていた。

バニラPHPでは正しく動作することを確認したのち、Laravel10をインストール。

すると、Laravelのエラー画面で以下のテキストが表示された。

Allowed memory size of 268435456 bytes exhausted (tried to allocate 29364224 bytes)

「あんたのPHPは268MBしか使えんようになっとるで!せやのに、293MBを使おうとしたから終了したで!(関西翻訳)」といわれているようだ。

え、どうして...?

今までLaravel9で開発をしていたが、こんなエラーが出たことなど一度もなかった。Laravel10はメモリをいっぱい使うのかな~とか思いながら、php.iniをmemory_limit=1024Mというように変更した。

すると今度は、

laravel Allowed memory size of 1073741824 bytes exhausted (tried to allocate 165959713 bytes)

一気に1.6GBを要求するエラーに変わっていた。ただウェルカムページを表示しようとしているだけなのに。

もうこの時点で、メモリ不足の問題が原因ではないだろうなと感じた。

とりあえずlaravel.logの出力でも見るか・・・。

・・・。

あれ!?laravel.logが作られてない!!

そもそもの、laravel.logが存在していなかった。

ここでピンときた。これまで何度も、DockerのLaravel環境で「storageフォルダへのその他ユーザのアクセス権がないためログファイルが出力できない」というエラーが起きることがあった。

.envにAPP_DEBUG=trueと設定していると、全てのリクエストの処理のコールスタックごとのログをlaravel.logに書き込むようになっていて、storageフォルダへのアクセス権がないと異常終了してしまうのだ。
今までだったら、Cannot access to laravel.log的なエラーが出ていたのだが、laravel.logが作られていないということは、それにかかわるエラーかもしれない。

一件落着。2時間溶けた。

その時の解決法である、chmod 707 -R storageを試してみると、無事解決。

環境によっては、アクセス権エラーと表示されず、メモリ不足といったエラーが出ることもあるようだ。

この記事が、どなたかのエラー解決の助けになれば幸いです。

余談

ウェルカムページが表示された後、あらためてlaravel.logを確認しようとしたところ、なんと存在しなかった(!)。

たまたま今回はうまくいったが、どうも自分の勘違いだったらしい。

・・・え?マジで、どこに消えたんだ?Laravel10から廃止になったのか?

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?