メニューを閉じる

テクノデジタルグループ

メニューを開く

2025.07.24

PHP

Log::info()が使えない!?Laravel.logのPermission denied エラーを解決する(Docker環境)

はじめに

ローカルでの開発中、Log::info() を使ってログを出力しようとした際に、処理が途中で終了してしまう現象に遭遇しました。
この記事では、その解決策と手順について解説します。

エラーの詳細

ログファイルを確認してみると、書き込み権限に関するエラーが出力されており、原因はログファイルのパーミッション設定にあるようでした。

local.ERROR: The stream or file “/var/www/html/storage/logs/laravel.log” could not be opened in append mode: Failed to open stream: Permission denied

 
laravel.log ファイルへの書き込み権限がないことを示しています。
おそらく、最近 Docker環境を再構築したことが原因で、ファイルやディレクトリの所有者・権限設定がリセットされてしまったのでしょう。
 
(再構築したというか、なぜかデータが初期化されたのでさせられたという気持ちですが、、、涙)

解決方法

この問題を解決するために、Dockerコンテナのシェルに入り、以下のコマンドを実行しました。

# storageディレクトリの所有者を www-data ユーザー・グループに変更
chown -R www-data:www-data /var/www/html/storage

# storageディレクトリのパーミッションを 775 に設定
chmod -R 775 /var/www/html/storage

# bootstrap/cacheディレクトリも同様に所有者を変更
chown -R www-data:www-data /var/www/html/bootstrap/cache

# bootstrap/cacheディレクトリのパーミッションも同様に設定
chmod -R 775 /var/www/html/bootstrap/cache

 

これらのコマンドを実行することで、対象のディレクトリの所有者をwww-data(Web サーバーの実行ユーザー)へ変更し、パーミッションが正しく設定でき、ログの書き込みエラーが解消されました。

おわりに

今回の記事では、Docker 環境で開発中に発生した Laravel のログ書き込み権限エラーについて解説しました。
もし同様の問題に直面された際は、ぜひこの手順を試してみてください。


【記事への感想募集中!】

記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!
  • こんな記事が読んでみたい、こんなことが知りたい、調べてほしい!という意見も募集中!
  • いただいた感想は今後の記事に活かしたいと思います!

感想フォームはこちら


【テクノデジタルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』

【テクノデジタルのインフラサービス】

当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。

https://www.tcdigital.jp/infrastructure/

最近の記事