Définir ses propres variables d'environnement
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
question

Définir ses propres variables d'environnement

Par
NicolasC22
Créé le 2018-01-30 16:02:20 (edited on 2024-09-04 12:56:20) dans Hébergements Web

Bonjour,

Je souhaite mettre un site en ligne qui se trouve dans un sous dossier du www sur mon hébergement mutualisé.

Ce site est développé avec Symfony 4 et ce dernier nécessite de configurer certaines variables d'environnement (ex DATABASE_URL pour la connection à la base de donnée) au travers des variables d'environnement Apache.

J'ai essayé de mettre un fichier .htaccess avec la directive SetEnv à l'intérieur mais je ne retrouve pas cette variable définie au sein de la variable $_ENV.

Quelqu'un saurait il comment procéder pour définir des variables d'environnement ?

Merci d'avance


4 réponses ( Latest reply on 2018-06-13 20:15:04 Par
ElsV
)

As-tu essayé de les insérer dans un fichier include appelé au début de chaque page ?
--> http://fr2.php.net/manual/fr/function.ini-set.php

Cette méthode agit sur les variables qui configurent le comportement et les limitations de PHP. La variable $_ENV est un peu différente dans mon esprit. Mais j'ai pensé en dernier recours à setter les variables voulues mais c'est une solution "sale"


mais c'est une solution "sale"

Heu! Heu! Pourquoi ?

Ca marcherait probablement mais la documentation symfony semble préciser que la valeur des variables doit etre setter en ligne de commande (ils citent l'exemple de Nginx) ou par les moyens mis à disposition par le prestataires de services (ovh ici).

http://symfony.com/doc/current/deployment.html#b-configure-your-environment-variables


Ca marcherait probablement mais la documentation symfony semble préciser que la valeur des variables doit etre setter en ligne de commande (ils citent l'exemple de Nginx) ou par les moyens mis à disposition par le prestataires de services (ovh ici).

Où là là, je laisse ma place aux experts.

:) .... Personnellement je suis un peu dépassé sur ce point et pas du tout calé en configuration de serveur.

Salut,
sur ce lien, je pense que tu devrais trouver ta réponse.
https://www.jdecool.fr/blog/2017/09/20/tutorial-jobeet-symfony-4-partie-3a-le-modele-de-donnees.html

Cdlt.

Bonjour ,

Effectivement c'est fort possible que cela réponde à mes attentes. Je test ça au plus tôt et j'essaye de ne pas oublier de confirmer la solution.

Merci

Bonjour Nicolas,
Je rencontre le même problème que toi et la méthode décrite dans le tutoriel Jobeet ne semble pas fonctionner.
As-tu trouvé une solution ?
Cordialement.

Bonjour,

J'en suis arrivé à la conclusion qu'Ovh, sur un hébergement mutualisé, n'autorisait pas l'exécution de l'instruction setEnv sur le Htaccess et que donc, je ne pouvais définir des variables d'environnement par ce biais.
J'ai fixé les variables au travers d'un fichier. C'est pas l'idéal mais pour un projet personnel, sur un mutualisé, cela fera l'affaire.
Cordialement


J'en suis arrivé à la conclusion qu'Ovh, sur un hébergement mutualisé, n'autorisait pas l'exécution de l'instruction setEnv sur le Htaccess

à une époque **_SI._**

Maintenant **_NON_** : https://docs.ovh.com/fr/hosting/configurer-le-php-sur-son-hebergement-web-mutu-2014/">Quelles versions de PHP sont disponibles ? :

Bonjour @NicolasC22,


J'en suis arrivé à la conclusion qu'Ovh, sur un hébergement mutualisé, n'autorisait pas l'exécution de l'instruction setEnv sur le Htaccess et que donc, je ne pouvais définir des variables d'environnement par ce biais.


Effectivement, il est impossible de modifier les variables d'environnement d'une même machine avec des ressources partagées, car cela expose les différents utilisateurs de la-dite machine a des possibles problèmes (vu que l'accès aux variables est unique en soit).

Cependant, il s'agit d'une fonctionnalité disponible sur notre nouvelle offre **Cloud Web** qui devrait arriver sous très peu de temps (avec notamment l'utilisation d'un runtime nodejs possible aussi).

Cette offre est disponible gratuitement dans le lab OVH pour l'instant :)

Bonne journée,
Pierrick - Equipe Webhosting

J'ai également une application qui utilise SetEnv dans .htaccess pour communiquer au programme php que certains headers ont été configurés.



Header set X-XSS-Protection "1; mode=block"
SetEnv modHeadersAvailable true



Ceci ne fonctionne pas sur mon serveur web mutualisé OVH

getenv('modHeadersAvailable') // ne retourne pas 'true'

Une astuce est que ça fonctionne si la variable commence par HTTP_

SetEnv HTTP_modHeadersAvailable true
getenv('HTTP_modHeadersAvailable') === 'true' // retourne true