0

J'ai créé une application PHP sur Openshift. Ensuite, j'ai ajouté une base de données MySQL à mon application. Ensuite, je peux voir les variables liées à la base de données dans le shell SSH avec la commande env.Openshift: les variables d'environnement des bases de données ne sont pas définies dans PHP

Toutefois, lorsque j'ai essayé d'utiliser des variables d'environnement pour configurer la connexion db, il ne les retrace pas dans mon code php. A titre d'exemple:

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

OPENSHIFT_APP_NAME déclarations Nom de l'application correctement mais OPENSHIFT_MYSQL_DB_HOST est une information nulle et l'hôte ne sont pas disponibles. J'ai également redémarré mon application dans la console. Comme un avis j'ai utilisé WinScp pour télécharger directement mon application et je ne suis pas sûr si le déploiement de l'application PHP a besoin de quelque chose plus ou moins (comme certains require trucs)?

Mise à jour:

Quand je vérifié les codes phpMyAdmin, je l'ai vu avoir un fichier 'conf.d/passenv.conf' avec la syntaxe comme ceci:

PassEnv OPENSHIFT_MYSQL_DB_PORT 

Mon aide pour que ce soit résoudre mon problème.

+0

'rhc env-list' (Liste toutes les variables d'environnement) ' rhc env-set {VARIABLE1} = {VALEUR1} {VARIABLE2} = {VALEUR2} '(Assignez la vôtre ...) [Consultez ce lien ...] (https://blog.openshift.com/taking-advantage-of-environment-variables-in-openshift-php-apps/) 'define ('DB_HOST', getenv ('OPENSHIFT_MYSQL_DB_HOST'))' – zipzit

+0

@zipzit On suppose qu'ils sont déjà définis quand j'ajoute une nouvelle cartouche. Puisqu'ils pourraient être des changements dans la configuration du serveur et je ne devrais pas les définir manuellement. – VSB

+0

Oups. Désolé si c'était trop subtil. Ouvrez RHC, puis tapez 'rhc env-list', et montrez-nous les résultats. Ensuite, faites un couple de 'echo (getenv ('OPENSHIFT_MYSQL_DB_HOST'));' (comme approprié pour les variables d'environnement observées de la liste env ci-dessus) et utilisez la commande 'tail-all' pour voir les résultats de votre code PHP (si vous utilisez log des dossiers) . Note: 'getenv..' pas' $ _ENV' (bien que d'après ce que je peux dire, ça devrait marcher correctement en PHP) – zipzit

Répondre

0

Vous devez arrêter et démarrer (PAS redémarrer) votre application, puisque vous avez ajouté MySQL après la création de votre application. utilisez les commandes d'arrêt de l'application rhc et de démarrage de l'application rhc.