ホームページ > 記事 > PHPフレームワーク > laravelプロジェクトリリースによるBUG(環境変数の問題)
この記事はlaravelプロジェクトのリリースに伴うバグ(環境変数問題)に関するものですので、困っている方は参考にしていただければ幸いです。あなたのお役に立てますように。
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 のドキュメントを参照し、次の手順を参照してください。
コメント
# 文字を使用して .env ファイルにコメントを付けることができます。例:
# this is a comment VAR="value" # comment VAR=value # comment。
Solution
.env ファイルで、DB_PASSWORD="abcde#142!*" のようにパスワード フィールドに二重引用符を追加すると、すべてが通常の状態に戻ります。
予期せぬ災害を避けるために、.env ファイルの環境変数の設定に "" を追加することをお勧めします。
以上がlaravelプロジェクトリリースによるBUG(環境変数の問題)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。