VHosts_ispconfig.conf wird nicht mehr geschrieben

Dieses Thema im Forum "Allgemein" wurde erstellt von concept, 15. Sep. 2008.

  1. concept

    concept New Member

    Hallo Forum,

    ich hoffe ich bin hier richtig. ich habe auf einem neuen Server ISP 2.2.25 installiert. dies lief bisher (ca 2 wochen) auch problemlos, es wurden ca 300 Domains und 12 e-mail-postfächer angelegt.

    seid 2 (arbeits)-tagen kommt es nun zu dem effekt, das die vhosts_ispconfig.conf nicht mehr aktualisiert/geschrieben wird. dadurch kann auch der apache2 nicht mehr starten.

    sobald im ISP eine änderung durchgeführt wird, startet die "writeconf.php". diese wird allerdings wie in der php.ini festgelegt, nach 5 minuten laufzeit abgebochen.

    ein erhöhen des limits auf 10 minuten brachte auch keinen erfolg.

    konfigurationsänderungen wurden von mir keine durchgeführt, zumindest nicht bewußt.

    hat vieleicht jemand von euch einen tipp, wo ich zwecks fehlersuche ansetzen könnte?

    danke!

    concept
     
  2. concept

    concept New Member

    Update:

    Habe den Fehler lokalisieren können. ISP erstellt die Vhost-Datei, kopiert dann aber eine leere Datei an deren Stelle, weil der Apache nicht startet. Dieser wiederrum startet nicht, weil er ein Problem mit einem meiner Webs hat. genauer gesagt ist ihm die "ServerAlias" Zeile zu lang, die ISP erzeugt. Zur Zeit werden dort Co-Domains mit in der Summe ca. 18.000 Zeichen (ja, achtzehntausend) erstellt.:eek:

    Ich habe nun mal Testweise die ServerAlias-Zeile in 1000er-Häppchen aufgeteilt. Und nun kann auch Apache starten.

    Nun meine Frage in die Runde, hat keiner hier so ein Problem? Bzw. Frage an die Entwickler (Till?), gibt es dazu einen Patch oder eine Konfigurationseinstellung? :confused:

    Danke für jede Info!
     
  3. JeGr

    JeGr Member

    acht..acht..achtze..achtzehntausend?? :eek: :eek: :eek:

    Ach du liebe Güte.. Sind das alles Aliasdomains? Lassen die sich nicht anders anlegen?
     
  4. concept

    concept New Member

    hallo grey,

    nicht 18.000 domains... 18.000 zeichen.. domains sind es knapp 500...

    denke das ich da vieleicht mit "sternchen" noch was tricksen kann, aber unter 300 komme ich bestimmt nicht

    auf der anderen seite sollte das aber doch auch so funktionieren, oder?

    grüße

    concept
     
  5. Till

    Till Administrator

    Ich denke nicht. Ich kenne aber auch keine Installation, in der so viele co-domains verwendet werden.

    Nein. Vermutlich müsstest Du ggf. die Funktion make_vhost in der Datei /root/ispconfig/scripts/lib/config.lib.php ändern, so dass die Domains gesplittet werden.
     
  6. concept

    concept New Member

    hallo,

    hm, dann werde ich das wohl mal versuchen mit dem "selbst-patchen".

    ist das denn so ungewöhlich mit so vielen domains? *wunder*

    lg

    concept
     
  7. Till

    Till Administrator

    Vermutlich schon. Also wir haben ca. 350 - 500 ISPConfig Downloads (Installationen + Updates) pro Tag und bis jetzt wurde weder im DE noch im EN Forum sowas mal gepostet :)
     
  8. concept

    concept New Member

    so... Problem gelöst.. sieht zumindest gut aus...

    @Till: Hier meine Änderungen (rot markiert), zur freien Verfügung:

    Begrenzen der ServerAlias-Zeile auf ca 1000 Zeichen, dann einfach neue Zeile beginnen:

    /root/ispconfig/scripts/lib/config.lib.php, ab Zeile 1387
    Code:
        //Serveralias bestimmen
        $sql = "SELECT isp_dep.*, isp_isp_domain.* from isp_dep,isp_isp_domain,isp_nodes where isp_dep.child_doc_id = isp_isp_domain.doc_id and isp_$
        $domains = $mod->db->queryAllRecords($sql);
    
        [COLOR=Red][B]$current_alias_length = 0;[/B][/COLOR]
        $serveralias = "ServerAlias ";
        $rewrite_rule = "RewriteEngine on";
        foreach($domains as $domain){
            if($domain["domain_host"] == "") {
              $serveralias .= $domain["domain_domain"].' ';
              [B][COLOR=Red]$current_alias_length += strlen($domain["domain_domain"]);[/COLOR][/B]
            } else {
              $serveralias .= $domain["domain_host"] . "." . $domain["domain_domain"].' ';
              [COLOR=Red][B]$current_alias_length += strlen($domain["domain_host"] . "." . $domain["domain_domain"]);[/B][/COLOR]
            }
    
    [COLOR=Red][B]         if ($current_alias_length > 1000) {
               $serveralias .= "\nServerAlias ";
               $current_alias_length = 0;
            }
    [/B][/COLOR] 
            if(!empty($domain["domain_weiterleitung"])){
              if($domain["domain_host"] == "") {
                $rewrite_cond_url = str_replace(".", "\\.", $domain["domain_domain"]);
                      } elseif ($domain["domain_host"] == "*") {
                              $rewrite_cond_url = "(.*)\.".str_replace(".", "\\.", $domain["domain_domain"]);
              } else {
                $rewrite_cond_url = str_replace(".", "\\.", $domain["domain_host"].".".$domain["domain_domain"]);
              }
    
    
    Kleiner Performance-Schub durch geänderte Abfrage ob Lokaler/Externer Mailserver, wenn viele Codomains und User-Email-Aliasse vorhanden (Es werden nur noch die Domains behandelt die auf Lokaler-Mailserver gestellt sind):

    /root/ispconfig/scripts/lib/classes/ispconfig_postfix.lib.php, ab Zeile 224

    Code:
            if(!empty($codomains)){
              foreach($codomains as $codomain){
                [B][COLOR=Red]if ($codomain["domain_local_mailserver"]) [/COLOR][/B]{
                   foreach($emails as $email){
                     if(!empty($email)){
    
                       if(!empty($codomain["domain_host"])){
                         $mod->tpl->assign( array(  EMAILALIAS => str_replace("####----||||----####", "", $email)."@".$codomain["domain_host"].".".$$
                                                    USER => $user_username));
                         $mod->tpl->parse(VIRTUSERTABLE,".virtusertable");
                         //if($user["user_catchallemail"] && isset($nousers[$codomain["domain_host"].".".$codomain["domain_domain"]])) unset($nouser$
                       } else {
                         $mod->tpl->assign( array(  EMAILALIAS => str_replace("####----||||----####", "", $email)."@".$codomain["domain_domain"],
                                                    USER => $user_username));
                         $mod->tpl->parse(VIRTUSERTABLE,".virtusertable");
                         //if($user["user_catchallemail"] && isset($nousers[$codomain["domain_domain"]])) unset($nousers[$codomain["domain_domain"]]$
                       }
                     }
                   }
    [B][COLOR=Red]             } else {
                   $mod->tpl->assign( array(    EMAILALIAS => "",
                                                USER => ""));
                   $mod->tpl->parse(VIRTUSERTABLE,".virtusertable");
                }
    [/COLOR][/B]           }
            }
    
     
  9. JeGr

    JeGr Member

    Was ist damit gemeint? Ist doch jetzt meines Wissens auch schon so, dass nur Domains mit Aliasen behandelt werden, die auf lokal gestellt sind?

    Zur anderen Frage: Ich hatte schon viele Kunden (kleine wie große) aber so viele Co-Domains zu einer Domains sind mir noch nicht begegnet. Nicht mal bei Großkunden (Pharma oder Chemiebranche), wo das sein könnte. Meistens waren es dann doch Domains, die auf einen Unterbereich o.ä. zeigen sollten und somit dann Redirected worden sind - und damit dann einen eigenen VHost bekommen haben.
     
  10. concept

    concept New Member

    Ja stimmt, allerdings wird durch die verschachtelte schleife JEDE domain mit JEDEM E-Mail-Alias durchgeprüft. Also bei 500 Domains und 20 Aliassen ca. 10000 tests. Durch die if-Bedingung prüft er nun nur noch die Domains, die "lokal" eingestellt sind. und das sind bei mir gerade noch 10, also nur noch 10*20=200 tests...

    Der besagte Internetauftritt besteht aus insgesamt ca 1500 Inhaltsseiten verteilt auf 9 Sprachen und den dazugehörigen Domains, insgesamt knapp 500 Stück. Bei den Domains sind aber auch viele "Falschschreibweisen" drin, und "Mit-und-Ohne-Bindestrich" Domains...

    gruß

    concept
     
  11. JeGr

    JeGr Member

    OK, die Masse ist mir bekannt (sogar noch mehr - leider), die Anzahl der Domains die direkt drauf zeigen allerdings weniger. Mag daher kommen, dass der Konzern eine zu einfache Domain hat, als dass man die falsch schreiben würde ;) - die meisten sind eigene VHosts mit Redirects auf direkte Unter(portal)seiten
     

Diese Seite empfehlen