2016-05-21 12 views
1

Ich möchte das Verhalten von Websites-aktiviert unter Linux, aber mit Xampp unter Windows, und ich habe einige Probleme. Ich hoffe, dass jemand helfen kann.Apache2: Bedingt basiertes Include für separate "Konfigurationsbaum"

Unter Linux ist es möglich, eine PHPINIDIR-Direktive innerhalb einer bestimmten Virtual-Host-Definition zu setzen und diesen Wert nur für den virtuellen Host zu verwenden. Dies scheint zu funktionieren, da der virtuelle Host ein anderer "Konfigurationsbaum" ist, daher kann jeder virtuelle Host sein eigenes PHPINIDIR haben.

In der Standard-Xampp-Installation gibt es eine conf/extra/httpd-vhosts.conf, wo ich meine eigenen virtuellen Host-Definitionen hinzufügen kann, aber diese werden alle zusammen geladen. Als Ergebnis ist es "ein Konfigurationsbaum", und es tritt ein Fehler auf, wenn ich versuche, eine andere PHPINIDIR-Direktive in jede andere vhost-Definition einzufügen (Weil die Variable mehr als einmal als definiert angesehen wird).

Ich habe über mod_vhost_alias gelesen, um zu sehen, ob ich eine bedingte Include machen kann.

z.B. Überprüfen Sie, ob die Datei basierend auf dem Hostnamen existiert, wenn dies der Fall ist, laden Sie die Konfigurationsdatei. Wenn nicht, laden Sie einen Standard.

<IfModule vhost_alias_module> 
    <If "-f 'C:/dev/bin/xampp/apache/conf/vhosts/' . %0 . '/vhost.conf'"> 
    Include "'C:/dev/bin/xampp/apache/conf/vhosts/' . %0 . '/vhost.conf'" 
    </If> 
    <Else> 
    Include "C:/dev/bin/apache/conf/vhosts/default.conf" 
    </Else> 
</IfModule> 

ich, wenn meine Syntax nur falsch ist, oder wenn vhost_alias_module arbeitet, um die Variablen zu setzen auf den virtuellen Host-Richtlinien nur nicht wissen, aber in jedem Fall die obigen Fehler aus:

httpd: Syntax error on line 503 of C:/dev/bin/xampp/apache/conf/httpd.conf: Syntax error on line 43 of C:/dev/bin/xampp/apache/conf/extra/httpd-vhosts.conf: Invalid Include path 'C:/dev/bin/xampp/apache/conf/vhosts/' . %0 . '/vhost.conf' 

Ich bin nicht auf diese spezifische Lösung verkauft, und ich bin offen für Vorschläge. Ich hoffe auf eine vollständige unique vhost.conf-Datei pro Host, da ich hoffte, mehr als nur PHPINIDIR anpassen zu können.

+0

Hilft das? [ändern PHP-Werte pro vhost] (http://serverfault.com/questions/461702/custom-phpinidir-setting-in-virtualhost-effecting-other-virtualhosts) – Aditya

+0

Eigentlich ja, das könnte definitiv helfen, mein Problem zu lösen. – Doug

Antwort

0

Nichts Ähnliches funktioniert.

Konfigurationsdateinamen sind jedoch irrelevant, es spielt keine Rolle, ob Sie 1 vhost in N-Dateien oder N vhosts in 1 Datei haben. Entweder kann eine Direktive in einem virtuellen Host angegeben werden oder nicht.

Wie, warum Ihr Programm nicht funktioniert:

mod_vhost_alias'es% n-Variablen sind nicht verfügbar auf allen Apache anderen Richtlinien, sondern nur die von mod_vhost_alias vorgesehen diejenigen.

Auch < Wenn und etwas mod_vhost_alias bezogen auf Anfrage Verarbeitungszeit interpretiert werden, während einschließen verarbeitet wird, wenn die Konfigurationsdatei gelesen wird.

0

Invalid Include path Für mich sieht es wie ein falsch formatierter Weg unter Witwen aus: Sollte es nicht etw. wie C:\\dev\\bin\\... oder C:\dev\bin\... je nachdem, wie die Software Backslashes behandelt?