[php] 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폴더 에만 복사했습니다 . 추가 작곡가 패키지는 포함되어 있지 않습니다. 여전히 같은 문제가 있습니다. 잘 작동하는 동일한 서버에 다른 Laravel 5.2 프로젝트가 있습니다.



답변

공식 Laravel 5.2 업그레이드 노트에서 :

config:cache배포 중에 명령을
사용하는 경우 응용 프로그램의 다른 곳이 아닌 구성 파일 내 에서만 함수를 호출하는지 확인 해야합니다env .

env애플리케이션 내에서 호출하는 경우 적절한 구성 값을 구성 파일에 추가하고 env대신 해당 위치 env에서 config호출 하여 호출을 호출 로 변환 할 수 있도록 하는 것이 좋습니다 .

참조 : https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0


답변

귀하의 경우 .env변수가 공백을 포함, 당신은 큰 따옴표를 포장해야합니다. 예를 들면 :

SITE_NAME="My website"

테스트하기 전에 캐시를 지우는 것을 잊지 마십시오.

php artisan config:cache
php artisan config:clear


답변

와. 맙소사. 따옴표로 묶지 않고 공백이있는 env 값이 있기 때문입니다.

SITE_NAME=My website

이것으로 변경

SITE_NAME="My website"

고쳤다. 나는 이것이 Laravel 5.2 에서 vlucas / phpdotenv 를 1.1.1에서 2.1.0으로 업그레이드하는 것과 관련 이 있다고 생각합니다.


답변

나를 위해 다음 순서로 작동했습니다.

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

그리고 나는 운없이 모든 나머지를 시도했습니다.


답변

비슷한 문제가 있었고 및 명령을 config/services.php사용하여 해결했습니다 .config clearoptimize

php artisan config:clear
php artisan optimize


답변

나를 위해 다음이 작동했습니다.

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


답변

이것을 실행하십시오 :

php artisan config:clear
php artisan cache:clear

그때
php artisan config:cache