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.
'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
@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
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