
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_file
puede 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 SetEnvIf
declaraciones 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.php
aparecerá 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.