Измените php настройки на основе субдомена в vHost

У меня есть VirtualHost который прямой много субдоменов к тому же каталогу.

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

Все те веб-сайты работают на том же приложении. Единственной вещью, которую я должен изменить от субдомена до другого, является php, устанавливающий date.timezone.

Я не могу к touche код приложения. Я ищу способ сделать так непосредственно в vHost.

Действительно ли это возможно? Как Вы сделали бы?

Большое спасибо;

1
задан 15 October 2015 в 16:21
1 ответ

Я пробовал и исследовал способ установки php_admin_value на основе таблицы поиска или переменной среды (установленной SetEnvIf ) и установки переменной с помощью php_value, но нашел ничего, что, вероятно, вам подошло бы (имея всю конфигурацию в одном VirtualHost ).

В качестве последнего средства я мог бы посоветовать вам хитрый план, скрывающий некоторый код ...

С помощью директивы конфигурации php auto_prepend_file вы можете выполнить некоторый код перед запуском сценария. Там вы можете выполнить поиск на основе виртуального хоста или использовать переменную, установленную SetEnvIf .

Конфигурация 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"]);

Of Конечно, операторы SetEnvIf могут быть перемещены в оператор switch в вашем php-коде.

Разработчик вашего приложения может заподозрить, что что-то произошло до их кода, потому что появится timezone_injector.php в трассировках стека. Но это может быть решением, если у вас есть запутанные или строго лицензированные приложения PHP, к которым вы не можете прикоснуться по нетехническим причинам.

1
ответ дан 3 December 2019 в 23:58

Теги

Похожие вопросы