Amn378
@Amn378

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

WEBページから.envの内容を認識させる方法について

解決したいこと

1⃣正しいenvファイルを認識させたい
2⃣画像の状況について知りたい
--Version
CentOs7 Docker (version 20.10.2)
php 7 Zend Engine v3.4.0, Xdebug v3.1.6

Web制作初心者です。
新しくプロジェクトの改版を務めるため、現在初学者向けの内容から勉強中です。
取り急ぎ自分の勉強用の環境として、既存環境よりフォルダごとコピーし、自分用のdockerを立ち上げ、(既存開発環境立ち上げ時のdocker-compose.ymlファイルを改造し利用)四苦八苦しながら何とかTOPページがつながるようになりましたが、.envファイルが古いものを読んでいるように感じます。(環境変数に記載のタイトルなどが古いことでそう思っています)

正しい.envファイルを認識させる方法を知りたいです。
よろしくお願いいたします。Root.png

また、関係あるかわかりませんが、画像のように
〇.envファイル(こちらが認識させたいファイル)は白文字&*がついていない
〇.env_ファイル(既存のフォルダの時に利用していた元の設定ファイルのバックアップ)緑文字&*つき
という状況でした。
これはosがなんらかを認識しているかどうかを示しているように思うのですが、正しいでしょうか?
詳しく知りたいです

自分で試したこと

source .env
とコンソール(Git Bash)でたたいたら とりあえずechoコマンドで、環境変数は見れるようになりましたが、WEBページに反映されることはありませんでした。

0

3Answer

これはosがなんらかを認識しているかどうかを示しているように思うのですが、正しいでしょうか?

lsコマンドのオプションで表示させている内容です。
/はディレクトを示し、*は実行形式ファイル(コマンド)を示します。

alias llを打ってみてください。

0Like

Comments

  1. @Amn378

    Questioner

    nak435様
    返信ありがとうございます。
    alias ll='ls -l --color=auto'
    aliasは上記の通りでした。
    自動でカラーリングされると理解しましたが、そのカラーや*の意味を知るには何か手掛かりはありますか?
    検索キーだけでも構いません。
    お手数をおかけしますがよろしくお願いいたします。

  2. lsコマンドも、RHEL系やDebian系でオプションの扱いが違うので、man lsで詳細を見るのが一番と思います(おそらく英語です)。

    ↓ CentOS & ls でヒットしたサイトです。ご参考まで。

    ↓ タイプ識別子関係(/ や *)

    (無料ですが、アカウント登録が必要かも)

  3. @Amn378

    Questioner

    ありがとうございます。
    OSによって違いがあるのですね。
    いただいたリンクで勉強させていただきます。
    助かりました。

「PHPで開発されたプロジェクト」という前提で回答しますが、.envファイルの読み込みはPHP自体の機能ではありません。
その仕組を自作したり、公開されているライブラリを使って読み込みます。
つまり、そのプロジェクトで.envファイルの読み込みをどのように行っているかを知る必要があります。

古いものを読んでいるように感じます

.envファイル読み込み処理によるパフォーマンスを改善するため、設定内容をキャッシュすることは考えられます。
そのような仕組みがある場合、キャッシュを削除することで最新の情報に更新されると思います。

0Like

Comments

  1. @Amn378

    Questioner

    blue32a様
    返信ありがとうございます。
    >つまり、そのプロジェクトで.envファイルの読み込みをどのように行っているか

    例えばソースコードに読み込み処理が書かれている可能性がある?といった可能性も併せて調査する必要がありそうですね。勝手に読み込まれるものと考えていましたが、どうやら違うようですね。

    >.envファイル読み込み処理によるパフォーマンスを改善するため、設定内容をキャッシュすることは考えられます。
    なるほど、キャッシュですか。。。
    例えば上記の通りソースに書かれてるとファイル名が変わるとそちらを読み込むはずはない、と思い込んでいたのですが。。。
    その辺もまだ知識余力がないため、そのあたりをKeyに調べていきたいと思います。

  2. プロジェクトが既存のフレームワークを使用しているなら、その情報を共有していただくことで詳しいことがわかるかもしれません。
    完全に自作されたものであれば、開発者に聞いてみるか、コードを読んで特定していくことになります。

    PHPで.envファイルを使用する場合、phpdotenvというライブラリを使用することがあります。もし使用しているなら、ファイル検索などであたりをつけていくのが良いと思います。

    参考

  3. @Amn378

    Questioner

    返信ありがとうございます。
    仕様書によるとLaravelのPHPフレームワーク Ver6 を使用しているようです。
    フレームワークに関してもまだ勉強初めて1週間な私ですので、情報に誤りがあればすみません。ただ、phpdotenvをキーに検索したところ、画像のような状況であることがわかりましたので添付いたします。
    phpdotenv.png

    phpdotenv2.png

  4. Laravelでしたら、まずはドキュメントを参照するのがよいと思います。
    設定のキャッシュが可能なので、プロジェクト全体をコピーした場合にキャッシュも残っている可能性は考えられます。

  5. @Amn378

    Questioner

    返信ありがとうございます。
    またドキュメントのご紹介ありがとうございます。読んでみます。
    このあたりのマニュアルについても把握しておりませんでしたのでありがたいです。

最終的な結果報告です。(備忘録もかねて)
〇正しいenvファイルを認識させたい・・・やってみたこと
1⃣一度envファイルを消してURLへアクセス
→ページが立ち上がる(envファイルが読めていないことを確認)
2⃣ php artisan cache:clear (キャッシュのクリアを実行)
 →やはりこれでも状況変わらず
3⃣ php artisan config:cache 
 →正しくenvファイルが再度取り込まれた。
3⃣コマンドを実行することで正しい環境設定が読み込めましたが、しかしながらどうもこのコマンドのせいでenvファイルが読み込めなかったようでした。(つまり過去にもこのコマンドが実行されていたのかな、と考えています)

参考
https://rapicro.com/laravel-env-php-artisan-configcache/

今後も毎回読めなくなるたびに(ちなみに、一度実行しましたが、今はenvを書き換えてもちゃんと反映されています)configファイルのキャッシュ化を行うイメージになるとは思いますが、取り急ぎこれで解決としたいと思います。

〇画像の状況について知りたい
こちらはパーミッションよって表示色が変わったり*がついたりすると理解しました。

皆様、ありがとうございました。
クローズとさせていただきます。

0Like

Your answer might help someone💌