web-dev-qa-db-ja.com

Laravel 5.2 envファイルを読み取っていません

Laravel 5.2にアップグレードした後、.envファイルの値が読み込まれていません。 アップグレード手順 ;に従いました。 auth.phpを除き、私の構成ファイルは変更されていません。以前のバージョン5.1.19ではすべて正常に機能していました

.envには次のような値が含まれます

DB_DATABASE=mydb
DB_USERNAME=myuser

config/database.phpは次を含む

'mysql' => [
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
]

私はこのエラーを受け取ります:

PDOException: SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: NO)

明らかに環境設定を引き込まない。これは、bugsnagなどのサードパーティを含む私の構成ファイルのすべてに影響を及ぼしています。

私も試しました

php artisan config:clear
php artisan cache:clear

更新

php artisan tinkerを試す

>>> env('DB_DATABASE')
=> null
>>> getenv('DB_DATABASE')
=> false
>>> config('database.connections.mysql.database')
=> "forge"
>>> dd($_ENV)
[]

Laravel 5.2の新しいコピーをインストールしようとしました。基本的に、appフォルダーにのみコピーしました。追加のcomposerパッケージは含まれません。まだ同じ問題があります。同じサーバー上に、正常に機能している他のLaravel 5.2プロジェクトがあります。

62
andrewtweber

ワオ。深い悲しみ。引用符で囲まれていないスペースが含まれているenv値があったためです

この

SITE_NAME=My website

これに変更

SITE_NAME="My website"

修正しました。これはLaravel 5.2に関係していると思います- vlucas/phpdotenv 1.1.1から2.1.0へのアップグレード

35
andrewtweber

公式Laravel 5.2アップグレードノートから:

展開中にconfig:cacheコマンドを使用している場合、must必ず、設定ファイル内からenv関数を呼び出し、どこからでも呼び出していないことを確認してくださいそれ以外はアプリケーションで。

アプリケーション内からenvを呼び出す場合は、適切な構成値を構成ファイルに追加し、代わりにその場所からenvを呼び出して、env呼び出しをconfig呼び出しに変換することを強くお勧めします。

リファレンス: https://laravel.com/docs/5.2/upgrade#upgrade-5.2.

64
Gaurav Gupta

.env変数のいずれかに空白が含まれている場合は、二重引用符で囲んでください。例えば:

SITE_NAME="My website"

テストする前にキャッシュをクリアすることを忘れないでください:

php artisan config:cache
php artisan config:clear
44
benjolly1989

config/services.phpでも同様の問題があり、config clearおよびoptimizeコマンドを使用して解決しました。

php artisan config:clear
php artisan optimize
20
Deric Lima

これを実行します:

php artisan config:clear
php artisan cache:clear

それから
php artisan config:cache

15
Ganesh K

コマンドphp artisan config:cacheを起動すると、すべてのenv変数が消去され、env()がnull値を与え、次のコマンドを実行してenv()が再びブームになり、すべてのenv変数をキャッチし始めます

php artisan config:clear
8
Shahrukh Anwar

ローカル環境でも同じ問題が発生しました。

  1. php artisan config:clear
  2. php artisan config:cache
  3. php artisan serveコマンドをキャンセルし、再起動します。
8
jay_mziray

アップグレード手順でこれを見逃しました:

次のようなenv構成オプションをapp.php構成ファイルに追加します。'env' => env('APP_ENV', 'production')

この行を追加すると、ローカルの.envファイルが正しく読み込まれます。

7
dKen

シンプルさが力です。

php artisan config:cache

あなたが受け取ります:

構成キャッシュがクリアされました!

構成が正常にキャッシュされました!

7
Adam Kozlowski

以下を使用してキャッシュを削除します。

    php artisan config:clear
    php artisan config:cache

:portがローカルの.envにある場合も同じことが起こります

繰り返しますが、二重引用符がトリックを行います

APP_URL="http://localhost:8000"

その後

php artisan config:clear
4
Stavros

@andrewtweberが提案したものに加えて、引用符で囲まない限り、KEY =valueの間にスペースを入れないようにしてください。

。envファイル例:

...
SITE_NAME= My website
MAIL_PORT= 587
MAIL_FROM_NAME= websitename
...

に:

...
SITE_NAME="My website"
MAIL_PORT=587
MAIL_FROM_NAME=websitename
...
3
Waqleh

私にとっては、これは次の順序で機能しています:

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

そして、私はすべての休みを運なしで試しました。

3
TrOnNe

私は地元でこの同じ問題にぶつかりました。ここですべての答えを試しましたが、役に立ちませんでした。 php artisan config:clearrestart serverだけがこれでうまくいきました。チャームのように機能します!

3
Dexter Bengil

コマンドを使用して新しいキーを生成するこの問題を解決しました:php artisan key:generate

2
Angel Prieto

ローカル開発中にconfig:cacheを呼び出した場合、bootstrap/cache/config.phpファイルを削除することでこれを元に戻すことができます。そして、これは私の仕事です。

2
Payal Pandav

ローカル開発中にconfig:cacheを呼び出した場合、bootstrap/cache/config.phpファイルを削除することでこれを元に戻すことができます。そして、これは私の仕事です。

@Payal Pandavは上記のコメントを提供しました。

簡単な回避策を教えてください。 bootstrap/cache /フォルダーのconfig.phpファイルを編集するだけです。そして、資格情報を変更します。これは私のために働いた。このファイルには実稼働環境の他の重要なデータが含まれている可能性があるため、このファイルを削除しないでください。

0
Daya Satheesh

私の場合、laravel 5.7 env('APP_URL')は機能しませんが、config('app.url')は機能します。 envとconfigに新しい変数を追加すると、動作しませんが、php artisan config:cacheの後に動作します。

0

index.phpファイルでdd/die/dumpを実行して、ミスを犯しました。これにより、システムは構成を再生成しません。

ビューファイルでダンプを実行するだけです。 .envファイルへの変更は即座に更新されます。

0
Bing Han

これを経験しました。理由は、Apache(ユーザーwww-data)がファイル許可のために.envを読み取れなかったからです。そのため、サーバー(Apache)がファイルへの読み取り許可を持つように、ファイル許可を変更しました。ちょうどそれとブーム、それはすべて機能していました!

0
gthuo

コンソールでこのphp artisan config:cacheコマンドを実行すると、すべての.envファイルの内容がキャッシュに保存されます。このコマンドの後、.envファイルに内容を追加すると、php artisan config:clearコマンドを実行するまで使用できなくなります

0

私にとっては、次の作品

  • php artisan config:cache
  • php artisan config:clear
  • pHPアーティザンキャッシュ:クリア
0
beatusfk