2016-07-12 5 views
0

Ich habe einen Server, auf dem ich mehrere Platzhaltervhosts mit ihrer eigenen Modperl-Umgebung ausführen möchte.Wildcard vhost mit modperl

Jeder vhost muss ein eigenes Startskript ausführen, um benutzerdefinierte Include-Pfade zu definieren.

In einer normalen vhost Konfiguration kann ich folgendes ... tun

<VirtualHost *:80> 
    ServerName web1.myserver.com 

    Define ApplicationRoot /websites/web1 

    DocumentRoot ${ApplicationRoot} 

    PerlSetEnv PERL_DOC_ROOT ${ApplicationRoot} 
    PerlOptions +Parent 
    PerlPostConfigRequire /websites/lib/startup.pl 
... 

Mein startup.pl Skript kann dann die PERL_DOC_ROOT Umgebungsvariable dynamisch benutzerdefinierten lib Pfade konfigurieren.

Dies funktioniert gut mit mehreren VHOST-Abschnitten. Sie haben jeweils ihre eigene @INC definiert und alles wird korrekt aufgelöst.

Gibt es eine Möglichkeit, dies zu einer Wildcard-Vhost-Konfiguration zu übersetzen. Ich möchte, dass Benutzer auf * .myserver.com zugreifen können, und es wird den Hostnamen verwenden, um herauszufinden, welches Dokument zu verwenden ist, und es wird startup.pl ausführen, um lib-Pfade basierend auf diesem Ordner zu definieren.

Ich weiß, dass ich so etwas wie diese verwenden kann ...

VirtualDocumentRoot /websites/%1/ 

dynamisch den Document-Root gesetzt, aber wenn ich versuche% zu verwenden 1 in allen anderen Deklarationen ist es nicht verstanden. Außerdem müsste startup.pl ausgeführt werden, wenn die Site zum ersten Mal angefordert wird, und nicht, wenn die Konfigurationsdatei zum ersten Mal geladen wird.

Ist das überhaupt möglich? Oder müsste ich die Konfigurationsdateien bei jedem Hinzufügen eines neuen virtuellen Verzeichnisses irgendwie dynamisch neu schreiben?

Antwort

0

Ich erkannte, dass ich es überkomplizieren. Ich brauche keine Platzhaltervhosts. Da ich Jenkins verwenden werde, um die vhosts-Verzeichnisse zu erstellen, kann ich es auch dazu bringen, dynamisch zu erstellende Konfigurationsdateien zu erstellen.