Eu tentei e pesquisei uma maneira de definir o php_admin_value com base em uma tabela de consulta ou uma variável de ambiente (definida por SetEnvIf
) e definir a variável com php_value, mas não encontrei nada que provavelmente combina com você um VirtualHost
).
Como último recurso, eu poderia aconselhá-lo sobre um plano desonesto, escondendo algum código ...
Com a diretiva de configuração do php auto_prepend_file
você pode executar algum código antes de iniciar um script. Lá você pode fazer uma pesquisa com base no host virtual ou usar uma variável definida por SetEnvIf
.
Configuração do 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"]);
É claro que as instruções SetEnvIf
podem ser movidas para uma instrução switch no seu código php.
O desenvolvedor do aplicativo pode suspeitar que algo aconteceu antes do código porque o timezone_injector.php
será exibido nos rastreamentos de pilha. Mas isso pode ser uma solução se você tiver um aplicativo PHP ofuscado ou restrito e licenciado que não seja capaz de tocar devido a motivos não técnicos.