+ Antworten
Ergebnis 1 bis 11 von 11

Dynamische VHOSTS mit Apache2 und mod_perl

Diskussion über Dynamische VHOSTS mit Apache2 und mod_perl in Rootserver - Vserver - Webspace der Kategorie Fachliches; Hallo Leute, Ich bin jetzt schon seit einigen Tagen an folgender Sache dran. Ich habe ein ein TSV-File in dem ...

  1. #1
    Reg.-Benutzer
    Reg.-Datum
    18.08.2008
    Beiträge
    42

    Standard Dynamische VHOSTS mit Apache2 und mod_perl

    Hallo Leute,

    Ich bin jetzt schon seit einigen Tagen an folgender Sache dran.
    Ich habe ein ein TSV-File in dem steht die Domain, der Pfad und der User des Vhosts.
    Nun will Ich diese mithilfe von mod_perl in eine recht spezielle Standart-Konfiguraton pumpen.
    Dazu habe Ich schonmal folgende Perl-Section geschrieben:

    PHP-Code:
    open(VHOSTS,"<","./scripts/vhosts_file");

    my @lines =  <VHOSTS>;
    close(VHOSTS);

    foreach(@
    lines)
    {
     
    my ($vhost_name$vhost_path$suexec_user) = split(/\t/);

    # get the username (groupname = username)
    $suexec_user getpwuid($suexec_user);
    #remove trailing / from path
    $vhost_path =~ s/\/$//;

    $VirtualHost{"$vhost_name:80"} = {
         
    ServerAlias => "$vhost_name:80",
            
    ServerName => "www.$vhost_name:80",
         
    DocumentRoot => $vhost_path,
            
    SuexecUserGroup => "$suexec_user $suexec_user",
         
    Directory => {
           
    $vhost_path => {
             
    FCGIWrapper => "/srv/www/$suexec_user/conf_$suexec_user .php",
             
    FilesMatch => {'\.php$' => {
                    
    SetHandler => 'fcgid-script',
                    },
    },
            
    Options => '+ExecCGI Indexes FollowSymLinks',
            
    AllowOverride =>  'AuthConfig Fileinfo',
            
    DirectoryIndex => 'index.php',
            
    order => 'deny,allow',
            
    Allow => 'from all',
           },
         },
      };


    Ein Restart bringt bei mir dann auch keine Fehler.
    Und ein
    Code:
    apache2 -S
    liefert folgendes( hab die IP und die Domains verändert):

    DomainA ist eine Domain, welche normal durch ein statisches Config-File konfiguriert wurde.
    DomainB ist die Domain, welche in dem TSV-File steht (vorerst nur eine zum testen)
    Code:
    1.2.3.4:80      is a NameVirtualHost
             default server DomainA.tld (/etc/apache2/sites-enabled/000-default.conf:149)
             port 80 namevhost DomainA.tld (/etc/apache2/sites-enabled/000-default.conf:149)
             port 80 namevhost www.DomainB.de (mod_perl:1)
             port 80 namevhost www.DomainB.de (mod_perl:1)
             port 80 namevhost dev.DomainA.tld (/etc/apache2/sites-enabled/evo_dev.conf:3)
    ...
    Wenn Ich nun aber auf die DomainB zugreife, komme Ich immer nur auf den Standart-Vhost (DomainA) alle anderen(statisch konfigurierten) VHosts funktionieren einwandfrei.

    Es scheint als würde er die Config der Perl Section nicht richtig ziehen...
    Aber Ich komme einfach nicht dahinter woran es liegt...
    Ich hänge etzt schon seit 3 Tagen an diesem Problem. nd hab mich dazu auch schon halb tot gegooglet.

    Ich hoffe Ihr könnt mir vieleicht weiterhelfen und dass Ich das Problem genug beschrieben habe.
    Schonmal Danke im vorraus.
    Grüße Shogoki

  2. #2
    Reg.-Benutzer
    Reg.-Datum
    05.04.2009
    Beiträge
    549

    Standard

    Hi,

    via Perl-Skript sind dyn. Vhosts schon ziemlich krank, eventuell ist das eine Alternative für dich: Dynamically Configured Mass Virtual Hosting - Apache HTTP Server

    Gruß
    axxis
    ZWNobyAiSGVsbCB5ZWFoLCBiYXNlNjQiIHwgYmFzZTY0ClNHVn NiQ0I1WldGb0xDQmlZWE5sTmpRSw==

  3. #3
    Reg.-Benutzer
    Reg.-Datum
    18.08.2008
    Beiträge
    42

    Standard

    Hallo axxis,

    Danke erstmal für die Antwort.
    Auch wenn diese mir nicht wirklich weiterhilft.
    Ich kenne die von dir verlinkte Seite.
    Das ist leider keine Alternative für mich, da mir da einige Funktionen fehlen.
    Ganz wichtig z.B. Fällt mir da spontan die Einstellung des Suexec-Users ein, welcher für dast jeden VHOST ein anderer ist.

    Vieleicht findet, sich ja noch jemand er mir bei meinem eigentlichen Problem weiterhelfen kann.

  4. #4
    Reg.-Benutzer
    Reg.-Datum
    05.04.2009
    Beiträge
    549

    Standard

    Hi,

    Versuch Nr.2

    Du nutzt namensbasierte VHosts.

    Ohne dein vhosts_file zu kennen, aber ein Name hat in der VirtualHost-Direktive (bei namensbasierten VHosts) imho nichts zu suchen.

    PHP-Code:
    $VirtualHost{"$vhost_name:80"} = { 
    Habs kurz statisch getestet, sowie du einen Namen in der Direktive setzt, wird die Anfrage durch den Default-VHost beantwortet.

    Gruß
    axxis
    ZWNobyAiSGVsbCB5ZWFoLCBiYXNlNjQiIHwgYmFzZTY0ClNHVn NiQ0I1WldGb0xDQmlZWE5sTmpRSw==

  5. #5
    Reg.-Benutzer
    Reg.-Datum
    18.08.2008
    Beiträge
    42

    Standard

    Hallo,
    Danke für die erneute Antwort.

    Leider hilft mir diese auch nicht weiter.

    Hier mal ein Blick in mein vhosts_file wie es in meinem Beispiel von oben aussehen würde:

    Code:
    DomainB.de  /pfad/zur/docroot/DomainB       5002
    Also die Domain, der Pfad und dann eine UID.
    Und eine Domain in einer VHOST-conf wird aufgelöst.

    Also in meinen statischen VHOST-Configs siehts auch so aus überall und es klappt.

    also vorraussetzung ist dann natürlich, dass die Domains vom Server aus auch auf die eigenen IP aufgelöst werden können.

  6. #6
    Reg.-Benutzer
    Reg.-Datum
    05.04.2009
    Beiträge
    549

    Standard

    Hi,

    Leider hilft mir diese auch nicht weiter.
    Dumm gelaufen

    Dass der Apache DNS kann ist zwar richtig, aber dennoch sollte man davon absehen! Issues Regarding DNS and Apache - Apache HTTP Server

    Ansonsten bin ich raus, in der Theorie reicht Apache eine Anfrage nur an den Default-VHost, wenn ServerName/-Alias matchen (was passieren kann, wenn eben die restlichen VHosts nicht matchen).

    Wenn du die Lösung hast, würde sie mich dennoch brennend interessieren.

    Gruß
    axxis
    ZWNobyAiSGVsbCB5ZWFoLCBiYXNlNjQiIHwgYmFzZTY0ClNHVn NiQ0I1WldGb0xDQmlZWE5sTmpRSw==

  7. #7
    Reg.-Benutzer
    Reg.-Datum
    18.08.2008
    Beiträge
    42

    Standard

    Also, da Ich ja nichts unversucht lasse (und es wie du auch erwähnt hast nciht gerade Best Practiceist ), habe Ich auch mein Skript mal auf die IP umgemünzt.

    Leider hat das auch nicht den gewünschten Erfolg gebracht.

    Des weiteren habe Ich auch noch versucht den mit mod_perl konfigurierten VHOST als default Host zu setzen.
    Im apache2 -S passt das dann auch.
    Aber in der Realität greift die Einstellung auch nicht...

    Es scheint tatsächlich als würde mein Apache, die Konfiguration ignorieren...
    Und das, obwohl im apache2 -S alles korrekt angezeigt wird.

    Das ist schon alles sehr merkwürdig...

  8. #8
    Reg.-Benutzer
    Reg.-Datum
    24.11.2010
    Beiträge
    183

    Standard

    Hast du deine Einstellungen denn schon einmal von Hand eingetragen und getestet?

    Wenn die Einstellungen dann nicht funktionieren brauchst du bei dem Skript erst einmal nicht weiter zu machen.

  9. #9
    Moderator Java
    Reg.-Datum
    24.07.2007
    Ort
    auf nem Berg
    Beiträge
    7.424

    Standard

    Also soweit wie ich weiß kann Apache auch VHost aus einem LDAP einbinden, wäre es evtl sinnvoller die ganzen Daten in das LDAP zu schieben und von dort dann einzubinden. Und via Script kannst Du auch direkt in den LDAP schreiben. Das Modul dazu müsste "mod_vhost_ldap" heißen.
    We can only see a short distance ahead, but we can see plenty there that needs to be done. (Alan Turing)
    http://flashpixx.de

  10. #10
    Reg.-Benutzer
    Reg.-Datum
    18.08.2008
    Beiträge
    42

    Standard

    jaa, Ich habe die Einstellungen ja aus einem statisch konfiguriertem VHOST übernommen.

    Zitat Zitat von flashpixx
    Also soweit wie ich weiß kann Apache auch VHost aus einem LDAP einbinden, wäre es evtl sinnvoller die ganzen Daten in das LDAP zu schieben und von dort dann einzubinden. Und via Script kannst Du auch direkt in den LDAP schreiben. Das Modul dazu müsste "mod_vhost_ldap" heißen.
    Das setzt aber ein bestehendes LDAP vorraus. Ich nutze auf meinem Webserver kein LDAP.

  11. #11
    Reg.-Benutzer
    Reg.-Datum
    18.08.2008
    Beiträge
    42

    Standard

    Ich hoffe, das stört jetzt niemanden wenn Ich hier auf den alten Thread antworte.
    Aber, da Ich mich heute nochmal mit dem Thema befasst habe und beim googlen meinen eigenen Thread (diesen hier) gefunden habe hab ich mir gedacht Ich poste mal meine Lösung hier. So hilft es hoffentlich jemanden der ein ähnliches Problem hat.

    Also Ich habe jetzt eine fuktionierende Lösung für mich gefunden. Die ist zwar noch nicht top ausgereift aber naja..
    Also eine wichtige Rolle spielt dabei das Modul mod_macro womit man Makros in der Apache Konfig definieren kann.

    Dann kann man damit ein Makro für die VHOSTS mit den entsprechenden variablen definieren.

    Damit Ich dann noch das TSV-File als Basis nehmen kann habe Ich ein kleines perlscript gebastelt, welches dieses ausliest und für jeden VHOST eine zeile mit dem aufruf für das Macro erstellt.
    Code:
    Use vhost vhost_name vhost_path suexec_user_id
    Diese Zeilen schreibt das Script dann in ein Apache-Config file.

    Das Skript wird dann per Cron alle 5min ausgeführt.

    Wer es noch ein wenig genauer möchte kann es demnächst auch hier nachlesen.
    Ich hoffe das war ein wenig hlfreich.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Ähnliche Themen

  1. VHosts aum VServer
    Von Crazy_Bug im Forum Rootserver - Vserver - Webspace
    Antworten: 7
    Letzter Beitrag: 19.11.2007, 22:06
  2. Server mod_perl Einstellung?
    Von INlife im Forum Rootserver - Vserver - Webspace
    Antworten: 0
    Letzter Beitrag: 01.06.2005, 01:36
  3. Apache2 und mod_perl
    Von dr.disk im Forum Rootserver - Vserver - Webspace
    Antworten: 3
    Letzter Beitrag: 23.09.2004, 18:49
  4. mod_perl: Apache Startupskript
    Von dr.disk im Forum Skript- und Webserverprogrammierung
    Antworten: 0
    Letzter Beitrag: 17.12.2003, 16:00
  5. Merkwürdige Dinge bei Apache mit VHOSTS
    Von captainhook im Forum Linux + Unix
    Antworten: 0
    Letzter Beitrag: 02.06.2001, 12:11

Die häufigsten Suchbegriffe für diese Seite:

Bisher noch keine Treffer von einer Suchmaschine