LoginSignup
3
6

More than 5 years have passed since last update.

Laravelでenvやgetenvで環境変数が読めない現象について

Posted at

はじめに

Laravelで、.envSOME_WORDが存在するのにかかわらず、env('SOME_WORD')getenv('SOME_WORD')で環境変数が読めない現象が発生し、解決に時間を要してしまったので、備忘録的に残しました。

現象について

.envSOME_WORDが定義しておりましが、その変数が読めない事象に遭遇しました。
env('SOME_WORD') を実行すると NULLgetenv('SOME_WORD')を実行するとfalseがリターンする現象です。

解決方法について

Stack Overflowでは、環境変数の定義にSOME_WORD=SOME WORDのようにスペースが含まれていると失敗するため、SOME_WORD="SOME WORD"とダブルクォート(")で括ることで解決できるといった事例が多かったのですが、そちらに該当しませんでした。

他の解決方法として、下記コマンドを実行することで解決できるといった記載がありましたので、実行してみました。

# php artisan config:clear
# php artisan cache:clear

ここで、php artisan cache:clearを実行するとFailed to clear cache. Make sure you have the appropriate permissions.というエラーが発生しました。
更に調査したところmkdir -p storage/framework/cache/dataを実行すると解決できるという記載がありましたので、そのコマンドを実行後、改めてphp artisan cache:clearを実行し、正常にコマンドが終了しました。

さて、問題の環境変数が読めない件ですが、上記を実施することで、正常に環境変数が読み込めるようになりました。

3
6
2

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
3
6