2025.07.24
Log::info()が使えない!?Laravel.logのPermission denied エラーを解決する(Docker環境)
2025.07.24
PHPLog::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つでも当てはまる方は是非、詳細ページへ!Qangaroo(カンガルー)
【テクノデジタルのインフラサービス】
当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。
最近の記事
タグ検索