reinicializar el sistema de ancho variable de entorno en linux
-
02-07-2019 - |
Pregunta
Yo sólo quiero que mi apache para registrar algunos de mi entorno predefinidos para que yo pueda recuperar el uso de la función getenv en php.¿Cómo puedo hacer esto?He intentado añadir /etc/profile.d/foo.sh con la exportación de FOO=bar, baz el uso de root y reiniciar apache.
Solución
Las variables de entorno son heredados por los procesos en Unix.Los archivos en /etc/profile.d sólo se ejecutan (en la shell actual, no en un subshell) al iniciar la sesión.Simplemente cambiando el valor allí y, a continuación, reiniciar un proceso de no actualizar el entorno.
Posibles Soluciones:
- sesión/registro en, a continuación, iniciar apache
- fuente el archivo:
# . /etc/profile.d/foo.sh
, a continuación, reinicie el servidor apache - fuente el archivo en el script de inicio de apache
Usted también necesita asegurarse de que /etc/profile.d/
es procedente cuando Apache se inicia por init
en lugar de a ti mismo.
La mejor solución podría depender también de la distribución está utilizando, debido a que utilizan diferentes esquemas para la configuración.
Otros consejos
Puede utilizar SetEnv en su fichero de configuración (/etc/httpd/conf.d/*.conf, .htaccess ...).Además, usted debe ser capaz de definir en /etc/sysconfig/httpd (en RPM basado en distribs) y exportación ellos (nota:no probado).
Nota:no me sorprendería si algunas distribuciones intentado muy duro para ocultar tanto como sea posible, tan lejos como la configuración del sistema se refiere, a partir de un acceso público del servicio, tales como Apache.Y si no es así, se podría empezar a hacer esto en una versión futura.Por lo tanto te aconsejo que para hacer esto de forma explícita.Si necesita compartir un ajuste entre el Apache y sus conchas, usted podría tratar de abastecimiento /etc/profile.d/yourprofile.sh de /etc/sysconfig/httpd
Los archivos de configuración de Apache permite configurar las variables de entorno en cada sitio.
Así que si su servidor web está sirviendo páginas a partir de dos lógicas de los sitios que usted puede tener la misma variable de entorno de establecer de forma diferente para cada sitio y así obtener su PHP para reaccionar de manera diferente.
Ver el Apache mod_env para más detalles:
Si usted necesita env variables para Apache sólo, lo que funcionó para mí fue la edición de la /etc/apache2/envvars
y el reinicio de Apache.He añadido estas opciones:
export LANG='en_US.UTF-8'
export LC_ALL='en_US.UTF-8'