VHosts_ispconfig.conf wird nicht mehr geschrieben

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
 

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!
 

JeGr

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

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

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
 

Till

Administrator
Nun meine Frage in die Runde, hat keiner hier so ein Problem?

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

Bzw. Frage an die Entwickler (Till?), gibt es dazu einen Patch oder eine Konfigurationseinstellung?

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.
 

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
 

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]           }
        }
 

JeGr

Member
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):

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.
 

concept

New 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?

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...

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.

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
 

JeGr

Member
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...
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
 

Werbung

Top