ホームページ  >  記事  >  PHPフレームワーク  >  laravelプロジェクトリリースによるBUG(環境変数の問題)

laravelプロジェクトリリースによるBUG(環境変数の問題)

不言
不言転載
2019-02-11 10:09:433289ブラウズ

この記事は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 サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。