Définition des variables d'environnement pour l'accès en PHP lors de l'utilisation d'Apache


105

J'ai un environnement Linux et j'ai une application Web PHP qui s'exécute conditionnellement en fonction des variables d'environnement en utilisant getenvPHP. J'ai besoin de savoir comment ces variables d'environnement doivent être définies pour que l'application fonctionne correctement. Je ne sais pas comment configurer cela sur Apache.

De plus, je dois pouvoir configurer des variables d'environnement distinctes pour chaque domaine séparément.

S'il vous plaît des conseils sur la façon dont je peux y parvenir.


Réponses:


160

Quelque chose dans le sens:

<VirtualHost hostname:80>
   ...
   SetEnv VARIABLE_NAME variable_value
   ...
</VirtualHost>

3
n'était pas dans mon tableau $ _ENV, pour récupérer la valeur, voir: stackoverflow.com/questions/2378871
...

Merci beaucoup!
Omran Shagooj

4
@i_a vous pouvez accéder à la valeur en PHP avecgetenv('VARIABLE_NAME')
BeetleJuice

dans xampp sous windows, le fichier sera C: \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf
Dung

@i_a Sur ma machine, la valeur peut également être trouvée dans la $_SERVERvariable.
robsch le

28

Vous pouvez également le faire dans un fichier .htaccess en supposant qu'ils sont activés sur le site Web.

SetEnv KOHANA_ENV production

Serait tout ce que vous devez ajouter à un .htaccess pour ajouter la variable d'environnement


est-ce différent de l'utilisation d'un fichier .env comme la façon dont laravel procède? Cela le rend-il moins sûr? Je pose cette question parce que je construis la même structure backend avec plusieurs frameworks (laravel, express, django, etc.) et certains développeurs de ces autres langages disent qu'il n'est pas approprié d'utiliser .env et que la "configuration du serveur" devrait être utilisé à la place, ou en le faisant via la ligne de commande, style
heroku

8

Incroyable, mais sur httpd 2.2 sur centos 6.4 cela fonctionne.

Exporter les variables d'environnement dans /etc/sysconfig/httpd

export mydocroot=/var/www/html

Alors faites simplement ceci ...

<VirtualHost *:80>
  DocumentRoot ${mydocroot}
</VirtualHost>

Puis finalement....

service httpd restart;

4

Si votre serveur est Ubuntu et la version Apache est 2.4

Version du serveur: Apache / 2.4.29 (Ubuntu)

Ensuite, vous exportez les variables dans l'emplacement "/ etc / apache2 / envvars".

Tout comme cette ligne ci-dessous, vous devez ajouter une ligne supplémentaire dans "/ etc / apache2 / envvars" export GOROOT = / usr / local / go

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.