Configuración de variables de entorno para acceder en PHP cuando se usa Apache


104

Tengo un entorno Linux y tengo una aplicación web PHP que se ejecuta condicionalmente en función de las variables de entorno que se utilizan getenven PHP. Necesito saber cómo se deben configurar estas variables de entorno para que la aplicación funcione correctamente. No estoy seguro de cómo configurar esto en Apache.

Además, necesito poder configurar variables de entorno independientes para cada dominio por separado.

Por favor, consejos sobre cómo puedo lograrlo.


Respuestas:


159

Algo parecido a esto:

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

3
no estaba en mi matriz $ _ENV, para recuperar el valor, consulte: stackoverflow.com/questions/2378871/…
i_a

¡Muchas gracias!
Omran Shagooj

4
@i_a puede acceder al valor en PHP congetenv('VARIABLE_NAME')
BeetleJuice

en xampp en Windows, el archivo será C: \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf
Dung

@i_a En mi máquina, el valor también se puede encontrar en la $_SERVERvariable.
robsch

28

También puede hacer esto en un archivo .htaccess suponiendo que estén habilitados en el sitio web.

SetEnv KOHANA_ENV production

Sería todo lo que necesita agregar a un .htaccess para agregar la variable de entorno


¿Es esto diferente de usar un archivo .env como la forma en que laravel hace esto? ¿Esto lo hace menos seguro? Pregunto esto porque estoy construyendo la misma estructura de backend con múltiples marcos (laravel, express, django, etc.) y algunos desarrolladores de esos otros lenguajes dicen que no es apropiado usar .env y que la "configuración del servidor" debería ser usado en su lugar, o haciéndolo a través de la línea de comando, estilo
heroku

8

Increíble, pero en httpd 2.2 en centos 6.4 esto funciona.

Exportar variables env en /etc/sysconfig/httpd

export mydocroot=/var/www/html

Entonces simplemente haz esto ...

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

Entonces finalmente....

service httpd restart;

4

Si su servidor es Ubuntu y la versión de Apache es 2.4

Versión del servidor: Apache / 2.4.29 (Ubuntu)

Luego exporta las variables en la ubicación "/ etc / apache2 / envvars".

Al igual que en la siguiente línea, debe agregar una línea adicional en "/ etc / apache2 / envvars" export GOROOT = / usr / local / go

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.