Heim  >  Artikel  >  PHP-Framework  >  BUG (Umgebungsvariablenproblem), verursacht durch die Veröffentlichung des Laravel-Projekts

BUG (Umgebungsvariablenproblem), verursacht durch die Veröffentlichung des Laravel-Projekts

不言
不言nach vorne
2019-02-11 10:09:433282Durchsuche

Der Inhalt dieses Artikels befasst sich mit dem BUG (Umgebungsvariablenproblem), das durch die Veröffentlichung des Laravel-Projekts verursacht wurde. Ich hoffe, dass dies der Fall ist hilfreich sein.

Nach einer bestimmten Version des Laravel-Projekts trat beim Herstellen einer Verbindung zur Datenbank im Projekt plötzlich ein Fehler auf, es war jedoch in Ordnung, mit demselben Datenbankkonto und demselben Kennwort eine Verbindung zum Computer herzustellen.

Vorübergehende Lösung

Nach einer kurzen Untersuchungszeit wurde der Grund nicht gefunden. Das ursprüngliche Datenbankkennwort war DB_PASSWORD=abcde#142!* Das Datenbankkennwort wird auf DB_PASSWORD gesetzt. Nach =abcde2019 kehrt es zum Normalzustand zurück.

Ideen zur Fehlerbehebung

Nach dem Ändern des Passworts kann die Datenbank normal verbunden werden, was zeigt, dass es sich um ein Passwortproblem handelt. Gleichzeitig schlägt das gleiche Passwort fehl um auf die Datenbank im Projekt zuzugreifen, aber auf dem Computer kann darauf zugegriffen werden. Bei Erfolg kann festgestellt werden, dass das Passwortproblem durch Umgebungsprobleme verursacht wird.

Drucken Sie das Protokoll der Datenbankverbindungskonfiguration im Projekt wie folgt:

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] => 
)

Die sichtbare Passwortkonfiguration in env ist DB_PASSWORD=abcde#142!*, die im PHP-Code gelesene Datenbankpasswortkonfiguration jedoch abcde, es ist ersichtlich, dass der Inhalt hinter # als Kommentar im Code betrachtet und ignoriert wird.

Bei der weiteren Überprüfung des Jenkins-Release-Protokolls habe ich einen Teil der Protokollausgabe gefunden:

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%)

Während des Release-Prozesses gab es ein Upgrade eines abhängigen Pakets.

Schauen Sie sich die Dokumentation von vlucas/phpdotenv an und sehen Sie sich die folgenden Anweisungen an:

Kommentare

Sie können Ihre .env-Datei mit dem #-Zeichen kommentieren, z. B.

# this is a comment
VAR="value" # comment
VAR=value # comment

Solution

.env-Datei, fügen Sie dem Passwortfeld doppelte Anführungszeichen hinzu, z. B. DB_PASSWORD="abcde#142!*", und dann kehrt alles zum Normalzustand zurück.

Es wird empfohlen, „“ zur Konfiguration der Umgebungsvariablen in der .env-Datei hinzuzufügen, um unerwartete Katastrophen zu vermeiden.


Das obige ist der detaillierte Inhalt vonBUG (Umgebungsvariablenproblem), verursacht durch die Veröffentlichung des Laravel-Projekts. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen