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プロジェクトがあります。
ワオ。深い悲しみ。引用符で囲まれていないスペースが含まれているenv値があったためです
この
SITE_NAME=My website
これに変更
SITE_NAME="My website"
修正しました。これはLaravel 5.2に関係していると思います- vlucas/phpdotenv 1.1.1から2.1.0へのアップグレード
公式Laravel 5.2アップグレードノートから:
展開中に
config:cache
コマンドを使用している場合、must必ず、設定ファイル内からenv
関数を呼び出し、どこからでも呼び出していないことを確認してくださいそれ以外はアプリケーションで。アプリケーション内から
env
を呼び出す場合は、適切な構成値を構成ファイルに追加し、代わりにその場所からenv
を呼び出して、env
呼び出しをconfig
呼び出しに変換することを強くお勧めします。
.env
変数のいずれかに空白が含まれている場合は、二重引用符で囲んでください。例えば:
SITE_NAME="My website"
テストする前にキャッシュをクリアすることを忘れないでください:
php artisan config:cache
php artisan config:clear
config/services.php
でも同様の問題があり、config clear
およびoptimize
コマンドを使用して解決しました。
php artisan config:clear
php artisan optimize
これを実行します:
php artisan config:clear
php artisan cache:clear
それからphp artisan config:cache
コマンドphp artisan config:cache
を起動すると、すべてのenv
変数が消去され、env()
がnull値を与え、次のコマンドを実行してenv()
が再びブームになり、すべてのenv
変数をキャッチし始めます
php artisan config:clear
ローカル環境でも同じ問題が発生しました。
アップグレード手順でこれを見逃しました:
次のようなenv構成オプションを
app.php
構成ファイルに追加します。'env' => env('APP_ENV', 'production')
この行を追加すると、ローカルの.env
ファイルが正しく読み込まれます。
シンプルさが力です。
php artisan config:cache
あなたが受け取ります:
構成キャッシュがクリアされました!
構成が正常にキャッシュされました!
以下を使用してキャッシュを削除します。
php artisan config:clear
php artisan config:cache
:portがローカルの.envにある場合も同じことが起こります
繰り返しますが、二重引用符がトリックを行います
APP_URL="http://localhost:8000"
その後
php artisan config:clear
@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
...
私にとっては、これは次の順序で機能しています:
php artisan config:cache
php artisan config:clear
php artisan cache:clear
そして、私はすべての休みを運なしで試しました。
私は地元でこの同じ問題にぶつかりました。ここですべての答えを試しましたが、役に立ちませんでした。 php artisan config:clear
とrestart server
だけがこれでうまくいきました。チャームのように機能します!
コマンドを使用して新しいキーを生成するこの問題を解決しました:php artisan key:generate
ローカル開発中にconfig:cacheを呼び出した場合、bootstrap/cache/config.phpファイルを削除することでこれを元に戻すことができます。そして、これは私の仕事です。
ローカル開発中にconfig:cacheを呼び出した場合、bootstrap/cache/config.phpファイルを削除することでこれを元に戻すことができます。そして、これは私の仕事です。
@Payal Pandavは上記のコメントを提供しました。
簡単な回避策を教えてください。 bootstrap/cache /フォルダーのconfig.phpファイルを編集するだけです。そして、資格情報を変更します。これは私のために働いた。このファイルには実稼働環境の他の重要なデータが含まれている可能性があるため、このファイルを削除しないでください。
私の場合、laravel 5.7 env('APP_URL')
は機能しませんが、config('app.url')
は機能します。 env
とconfigに新しい変数を追加すると、動作しませんが、php artisan config:cache
の後に動作します。
index.php
ファイルでdd/die/dumpを実行して、ミスを犯しました。これにより、システムは構成を再生成しません。
ビューファイルでダンプを実行するだけです。 .env
ファイルへの変更は即座に更新されます。
これを経験しました。理由は、Apache(ユーザーwww-data)がファイル許可のために.envを読み取れなかったからです。そのため、サーバー(Apache)がファイルへの読み取り許可を持つように、ファイル許可を変更しました。ちょうどそれとブーム、それはすべて機能していました!
コンソールでこのphp artisan config:cache
コマンドを実行すると、すべての.envファイルの内容がキャッシュに保存されます。このコマンドの後、.envファイルに内容を追加すると、php artisan config:clear
コマンドを実行するまで使用できなくなります
私にとっては、次の作品