У меня есть сервер, на котором я хочу запустить несколько подстановочных виртуальных хостов с их собственной средой modperl.
Каждый виртуальный хост должен запускать собственный сценарий запуска, чтобы определить настраиваемые пути включения.
В обычной конфигурации vhost я могу сделать следующее...
<VirtualHost *:80>
ServerName web1.myserver.com
Define ApplicationRoot /websites/web1
DocumentRoot ${ApplicationRoot}
PerlSetEnv PERL_DOC_ROOT ${ApplicationRoot}
PerlOptions +Parent
PerlPostConfigRequire /websites/lib/startup.pl
...
Затем мой сценарий startup.pl может использовать переменную среды PERL_DOC_ROOT для динамической настройки пользовательских путей к библиотекам.
Это отлично работает с несколькими разделами vhosts. У каждого из них определен свой собственный @INC, и все разрешается правильно.
Есть ли способ перевести это в конфигурацию vhost с подстановочными знаками. Я бы хотел, чтобы пользователи могли получить доступ к *.myserver.com, и он будет использовать имя хоста, чтобы выяснить, какой documentroot использовать, и запустить startup.pl для определения путей к библиотекам на основе этой папки.
Я знаю, что могу использовать что-то вроде этого...
VirtualDocumentRoot /websites/%1/
для динамической установки корня документа, но если я попытаюсь использовать %1 в любых других объявлениях, это не будет понято. Кроме того, startup.pl должен запускаться при первом запросе сайта, а не при первой загрузке файла конфигурации.
Это вообще возможно? Или мне нужно как-то динамически переписывать файлы конфигурации каждый раз, когда добавляется новый виртуальный каталог.