2016-07-12 11 views
0

У меня есть сервер, на котором я хочу запустить несколько подстановочных vhosts со своей собственной средой modperl.Wildcard vhost with 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 динамически конфигурировать пользовательские Lib путей.

Это прекрасно работает с несколькими разделами vhosts. Каждый из них имеет свой собственный @INC, и все исправляется правильно.

Есть ли способ, которым я могу перевести это в конфигурацию vhost подстановочных знаков. Я хочу, чтобы пользователи имели доступ к * .myserver.com, и он будет использовать имя хоста, чтобы выяснить, какой документ использовать, и запустит startup.pl для определения путей lib на основе этой папки.

Я знаю, что могу использовать что-то вроде этого ...

VirtualDocumentRoot /websites/%1/ 

динамически установить корень документа, но если я пытаюсь использовать% 1 в любых других заявлений он не понят. Кроме того, startup.pl должен запускаться при первом запросе сайта, а не при первом загрузке файла конфигурации.

Возможно ли это вообще? Или мне нужно каким-то образом динамически переписать файлы конфигурации каждый раз, когда будет добавлен новый виртуальный каталог.

ответ

0

Я понял, что это слишком сильно. Мне не нужно использовать подстановочные vhosts. Поскольку я буду использовать Jenkins для создания каталогов vhosts, я также могу заставить его динамически создавать файлы конфигурации для соответствия.