Cambiar la configuración de PHP según el subdominio en vHost

Cambiar la configuración de PHP según el subdominio en vHost

Tengo un VirtualHost que dirige muchos subdominios al mismo directorio.

  • moscú.myapp.com
  • paris.myapp.com

Todos esos sitios web se ejecutan en la misma aplicación. Lo único que necesito cambiar de un subdominio a otro es la configuración de PHP date.timezone.

No puedo tocar el código de la aplicación. Estoy buscando una manera de hacerlo directamente en vHost.

Es posible ? ¿Cómo lo harías?

Muchas gracias;

Respuesta1

Intenté e investigué una forma de configurar php_admin_value en función de una tabla de búsqueda o una variable de entorno (establecida por SetEnvIf) y configurar la variable con php_value, pero no encontré nada que probablemente le convenga (tener toda la configuración en una VirtualHost).

Como último recurso, podría recomendarte un plan tortuoso, ocultando algún código...

Con la directiva de configuración de php, auto_prepend_filepuede ejecutar algún código antes de iniciar un script. Allí puede realizar una búsqueda basada en el host virtual o utilizar una variable establecida por SetEnvIf.

Configuración de Apache VirtualHost:

SetEnvIfNoCase Host "^sandbox.coolhaven.info$" TZ=Europe/Moscow
SetEnvIfNoCase Host "^sandbox2.coolhaven.info$" TZ=Europe/Paris

php_value auto_prepend_file /var/www/misc/timezone_injector.php

/var/www/misc/timezone_injector.php

<?php date_default_timezone_set($_ENV["TZ"]);

Por supuesto, las SetEnvIfdeclaraciones se pueden mover a una declaración de cambio en su código PHP.

El desarrollador de su aplicación podría sospechar que algo sucedió antes de su código porque timezone_injector.phpaparecerá en los seguimientos de la pila. Pero esto podría ser una solución si tiene aplicaciones PHP con licencia estricta o ofuscadas que no puede utilizar por razones no técnicas.

información relacionada