Altera as configurações do php com base no subdomínio no vHost

1

Eu tenho um VirtualHost que direciona muitos subdomínios para o mesmo diretório.

  • moscow.myapp.com
  • paris.myapp.com

Todos esses sites são executados no mesmo aplicativo. A única coisa que eu preciso mudar de um subdomínio para outro é a data de configuração do php.timezone.

Não consigo tocar no código do aplicativo. Eu estou procurando uma maneira de fazê-lo diretamente no vHost.

É possível? Como você faria?

Muito obrigado;

    
por Paul Etienney 15.10.2015 / 15:21

1 resposta

1

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.

    
por 15.10.2015 / 23:48