3

私は Laravel 5.0.33 を使用しており、サーバーに次のフォルダーがあります。

/var/www/laravel_dev/  
/var/www/laravel_stage/  
/var/www/laravel_production/

それぞれに独自の .env ファイルとデータベースがありますが、何らかの理由でそれぞれが間違った .env ファイルをロードすることがあります (100 回のリクエストごとに 1 回など)。

envデータベースをダンプすると、間違った.envファイルがロードされると考えました:

var_dump(env('DB_DATABSE'));  

laravel_dev サイトの laravel_production データベースの名前を返すことがあります。

laravel_production データベース名を grep 検索しましたが、dev フォルダーにはありません。

dir 定数 ( DIR ) をさまざまな場所にダンプしようとしましたが、常に正しいです。

何が間違っているのか、または何が間違っているのかをさらに掘り下げる方法を知っている人はいますか?

4

2 に答える 2

0

dodevn は、プロジェクトの開発インスタンス専用であることが判明しました。本番環境では、構成ファイルをハードコーディングする必要があります。

https://github.com/vlucas/phpdotenv

「phpdotenv は開発環境用に作成されており、通常は本番環境では使用しないでください。本番環境では、リクエストごとに .env ファイルをロードするオーバーヘッドがないように、実際の環境変数を設定する必要があります。」

私は実稼働インスタンスで git を使用しているため、問題の解決策は、サーバーで必要な各インスタンスの各 vhost ファイルに環境変数を設定することです。

SetEnv DB_DATABASE laravel_stage
SetEnv CACHE_PREFIX  stage

魅力のように機能します。

于 2016-01-20T09:46:43.890 に答える