0

Ich habe eine PHP-Anwendung auf Openshift erstellt. Dann habe ich meiner App eine MySQL-Datenbank hinzugefügt. Danach kann ich datenbankbezogene Variablen in der SSH-Shell mit dem Befehl env sehen.Openshift: Datenbank-Umgebungsvariablen sind in PHP nicht gesetzt

Allerdings, wenn ich versucht, Umgebung Variablen zu verwenden, um DB-Verbindung einzurichten, es nicht zurück zu meinem PHP-Code. Als Beispiel:

<?php 
echo('App: '.$_ENV["OPENSHIFT_APP_NAME"].'<br/>'); 
echo('Host: '.$_ENV["OPENSHIFT_MYSQL_DB_HOST"]); 

OPENSHIFT_APP_NAME kehrt Anwendungsname korrekt jedoch OPENSHIFT_MYSQL_DB_HOST ist null und Informationen Host ist nicht verfügbar.

Ich habe auch meine Anwendung in der Konsole neu gestartet. Als eine Nachricht habe ich WinScp verwendet, um meine Anwendung direkt hochzuladen und ich bin mir nicht sicher, ob die Bereitstellung von PHP-Anwendung mehr oder weniger benötigt (wie einige require Sachen)?

Update:

Wenn ich phpMyAdmin-Codes überprüft, ich sah es eine Datei 'conf.d/passenv.conf' mit Syntax wie folgt:

PassEnv OPENSHIFT_MYSQL_DB_PORT 

Mein es zu helfen, sein für mein Problem lösen.

+0

'rhc env-list' (Listet alle Umgebungsvariablen auf) ' rhc env-set {VARIABLE1} = {VALUE1} {VARIABLE2} = {VALUE2} '(Weisen Sie Ihre eigenen zu ...) [Lesen Sie diesen Link ...] (https://blog.openshift.com/taking-advantage-of-environment-variables-in-openshift-php-apps/) 'define ('DB_HOST', getenv ('OPENSHIFT_MYSQL_DB_HOST'));' – zipzit

+0

@zipzit Es wird angenommen, dass sie bereits definiert sind, wenn ich eine neue Kassette hinzufüge. Da es sich möglicherweise um Änderungen in der Serverkonfiguration handelt, sollte ich sie nicht manuell definieren. – VSB

+0

Hoppla. Entschuldigung, wenn das zu subtil war. Öffnen Sie RHC, geben Sie rhc env-list ein und zeigen Sie uns, was die Ergebnisse sind. Dann mache ein paar 'echo (getenv ('OPENSHIFT_MYSQL_DB_HOST'));' (wie für Umgebungsvariablen aus der obigen env-Liste geeignet) und benutze 'tail-all' um die Ergebnisse aus deinem PHP Code zu sehen (wenn log benutzt wird) Dateien). Hinweis: 'getenv..' nicht' $ _ENV' (obwohl, was ich sagen kann, sollte in PHP gut funktionieren) – zipzit

Antwort

0

Sie müssen Ihre Anwendung stoppen und starten (NICHT neustarten), da Sie MySQL hinzugefügt haben, nachdem Ihre Anwendung erstellt wurde. Verwenden Sie die Befehle rhc app stop und rhc app start.

Verwandte Themen