라라벨 프로젝트 출시로 인해 발생하는 BUG(환경변수 문제)에 대한 내용입니다. 도움이 필요한 친구들에게 참고가 되었으면 좋겠습니다.
laravel 프로젝트의 특정 릴리스 이후 프로젝트에서 데이터베이스에 연결할 때 갑자기 오류가 발생했지만 머신에서 연결할 때 동일한 데이터베이스 계정과 비밀번호를 사용하면 괜찮았습니다.
임시 해결 방법
잠깐의 조사 끝에 원인을 찾을 수 없었습니다. 원래 데이터베이스 비밀번호는 DB_PASSWORD=abcde#142!*였습니다. 데이터베이스 비밀번호를 DB_PASSWORD=abcde2019로 변경한 후 정상으로 돌아왔습니다.
문제 해결 아이디어
비밀번호를 변경한 후 데이터베이스가 정상적으로 연결되는데 이는 비밀번호 문제임을 나타냅니다. 동시에 동일한 비밀번호로 프로젝트의 데이터베이스에 액세스하지 못하지만 성공적으로 액세스할 수 있습니다. 비밀번호 문제는 환경적인 문제로 인해 발생한 것으로 판단할 수 있습니다.
다음과 같이 프로젝트의 데이터베이스 연결 구성 로그를 인쇄합니다.
Array ( [driver] => mysql [host] => xxx [port] => xxx [database] => xxx [username] => xxx [password] => abcde [unix_socket] => [charset] => utf8mb4 [collation] => utf8mb4_unicode_ci [prefix] => [strict] => 1 [engine] => )
env에서 비밀번호 구성이 DB_PASSWORD=abcde#142!*
,但是在PHP代码中读取的数据库密码配置为abcde
임을 알 수 있으며, 보이는 # 뒤에 있는 내용은 코드에서 주석으로 간주됩니다. 이므로 무시됩니다.
jenkins 릴리스 로그를 계속 확인하고 로그 출력 부분을 찾으세요.
Package operations: 0 installs, 3 updates, 0 removals - Updating vlucas/phpdotenv (v2.5.2 => v2.6.0): Downloading (connecting...)Downloading (0%) Downloading (15%)Downloading (100%)
릴리스 프로세스 중에 종속 패키지가 업그레이드됩니다.
vlucas/phpdotenv 문서를 확인하고 다음 지침을 참조하세요.
Comments
# 문자를 사용하여 .env 파일에 주석을 달 수 있습니다. 예를 들어
# this is a comment VAR="value" # comment VAR=value # comment
Solution
.env 파일에 비밀번호 필드를 추가하세요. DB_PASSWORD="abcde#142!*"와 같은 큰따옴표를 사용하면 모든 것이 정상으로 돌아옵니다.
예상치 못한 재난을 방지하기 위해 .env 파일의 환경 변수 구성에 ""를 추가하는 것이 좋습니다.
위 내용은 laravel 프로젝트 출시로 인한 BUG(환경변수 문제)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!