Darstellungsfehler nach Update auf 2.2.27

Dieses Thema im Forum "Installation und Konfiguration" wurde erstellt von make-fun, 2. Dez. 2008.

  1. make-fun

    make-fun New Member

    Hallo,
    nach einem Update von 2.2.25 auf 2.2.27 (Ubuntu 8.04) gibt es nun einen Darstellungsfehler in ISPConfig: ISP Server Status:
    Code:
    Dateisystem | Größe | Benut | Verf | Ben% | Eingehängt
    Locale:
    Code:
    LANG="de_DE.UTF-8"
    Hat das noch jemand?
     
  2. Till

    Till Administrator

    ISPConfig unterstützt kein UTF8, Du musst das "normale" deutsche Endcoding nehmen.
     
  3. make-fun

    make-fun New Member

    Unter der 2.2.25 stimmte die Darstellung ja und Ubuntu lief schon seit Anbeginn auf LANG="de_DE.UTF-8" — bei der Installation oder Upgrades hatte ich auch schon immer Darstellungsfehler in den ISPConf - Install-Texten/Menues, was ja nicht weiter stört.

    Diese Darstellung haben wir also definitiv erst seit 2.2.27

    Shellausgaben sind auch kein Problem:
    Code:
    # df -h
    Dateisystem            Größe Benut  Verf Ben% Eingehängt auf
    /dev/hda3              75G   40G   31G  57% /
    Code:
    # locale
    LANG=de_DE.UTF-8
    LANGUAGE=de_DE.UTF-8
    LC_CTYPE="de_DE.UTF-8"
    LC_NUMERIC="de_DE.UTF-8"
    LC_TIME="de_DE.UTF-8"
    LC_COLLATE="de_DE.UTF-8"
    LC_MONETARY="de_DE.UTF-8"
    LC_MESSAGES="de_DE.UTF-8"
    LC_PAPER="de_DE.UTF-8"
    LC_NAME="de_DE.UTF-8"
    LC_ADDRESS="de_DE.UTF-8"
    LC_TELEPHONE="de_DE.UTF-8"
    LC_MEASUREMENT="de_DE.UTF-8"
    LC_IDENTIFICATION="de_DE.UTF-8"
    LC_ALL=
    
     
    Zuletzt bearbeitet: 2. Dez. 2008
  4. make-fun

    make-fun New Member

    Könnte es an Apache/PHP-Kombi liegen?

    @Till
    Habe mal etwas getestet…
    Wenn ich den Code aus der /home/admispconfig/ispconfig/lib/plugins/check_disk.plugin.php
    nehme und ihn auf der Shell als root ausführe stimmt alles — aber eben mit #!/usr/bin/php
    Code:
    #!/usr/bin/php
    <?PHP
    …
    $html_out .= '<table width="80%" border="0" cellspacing="1" cellpadding="4" bgcolor="#CCCCCC">';
    $fd = popen ("df -h", "r");
    while (!feof($fd)) {
    $buffer .= fgets($fd, 4096);
    }…
    ?>
    
    Ausgabe(#!/usr/bin/php)
    HTML:
    <table width="80%" border="0" cellspacing="1" cellpadding="4" bgcolor="#CCCCCC"><tr>
                      <td>Dateisystem</td>
                      <td>Größe</td>
                      <td>Benut</td>
                      <td>Verf</td>
                      <td>Ben%</td>
                      <td>Eingehängt</td>
                      </tr>
    
    Danach habe ich die Ausgaben über Apache&PHP noch verglichen und auch da zeigen sich Unterschiede.

    ISPConfig-Server on :81
    HTML:
    <table width="80%" border="0" cellspacing="1" cellpadding="4" bgcolor="#CCCCCC"><tr>
              <td>Dateisystem</td>
              <td>Größe</td>
              <td>Benut</td>
              <td>Verf</td>
              <td>Ben%</td>
              <td>Eingehängt</td>
              </tr>
    Normaler Web-Server(PHP Version 5.2.4-2ubuntu5.3)
    HTML:
    <table width="80%" border="0" cellspacing="1" cellpadding="4" bgcolor="#CCCCCC"><tr>
              <td>Filesystem</td>
              <td>Size</td>
              <td>Used</td>
              <td>Avail</td>
              <td>Use%</td>
              <td>Mounted</td>
              </tr>
    Hier ist dann leider Ende für mich, da ich mir das nicht weiter erklären kann. Wie könnte man die Shell mal mit dem ISPConfig-PHP ausführen — quasi #!/root/ispconfig/php?

    Hoffe, dass Dir das evtl. als Ansatz hilft
     
  5. Till

    Till Administrator

    Ja. Aber ich denke nicht dass es was mit dem PHP zu tun hat. In ISPConfig wurde in dem Bereich auch nichts geändert. Wie ich oben geschrieben hatte unterstützt ISPConfig kein UTF-8 und das was Du da siehst ist ein UTF-8 encoding Problem.
     
  6. make-fun

    make-fun New Member

    Naja, wie gesagt einzig neu ist das Update auf 2.2.27, also muss es doch damit zu tun haben…

    Ich habe übrigens noch Screenshots von der 2.2.25 auf der alle Umlaute richtig dargestellt zu sehen sind!

    Wie kann ich denn die Shell auf "#!/root/ispconfig/php" umstellen?
     
  7. Till

    Till Administrator

    Wiso willst Du die Shell darauf umstelle? Die Shell ist z.B. /bin/bash, PHP ist keine Shell.
     
  8. make-fun

    make-fun New Member

    Ok hätte villeicht CLI-PHP schreiben sollen… dachte "#!/root/ispconfig/php" wäre klar genung…
     
  9. Till

    Till Administrator

    PHP ist keine Shell, auch die cli Version nicht und was hat das mit diesem Thread zu tun?
     
  10. make-fun

    make-fun New Member

    Hmmm, das alles nur mit dem Thread zu tun!
    1. Führe ich df -h auf der Shell aus stimmt meine Augabe
    2. Führe ich PHP-Code …$fd = popen ("df -h", "r");… auf dem Webserver aus bekomme ich enlische Ausgaben
    3. Führe ich …$fd = popen ("df -h", "r");… als CLI-PHP(Command Line Interface) mit #!/usr/bin/php aus stimt die ausgabe mit deutschen Umlauten!
    4. Nur auf dem ISPConfig-Server on :81 stimmt die Ausgabe seit 2.2.27 nicht mehr!!
    Also möcht ich den Code mit dem CLI-PHP des ISPConfig-Server um zu sehen, was dann ausgegeben wird.
    Die falsche Darstellung ist ja evtl. wirklich nur hier, aber irgendwie stimmt mich soetwas einfach nachdenklich.

    Edit:
    @PHP ist keine Shell
    Das kann man sicher so sagen. Im Englishen Sprachraum sieht man das jedoch etwas anders, da die erste Zeile #!/usr/bin/php
    ja von der Shebang-Zeile abgeleitet ist, ist es normal zu sagen "run a php shell…"
     
    Zuletzt bearbeitet: 3. Dez. 2008
  11. Till

    Till Administrator

    Nur was soll Dir das bringen? ISPConfig verwendet das PHP nicht in dieser Art, das hat also keinerlei Aussagekraft zu dem Problem.

    Wie ich bereits oben erwähnt habe, das ist ein UTF-8 Problem. ISPConfig unterstützt kein UTF-8, dein normaler Webserver ist vermutlich auf utf-8 als charset eingestellt daher geht es dort.

    Du kannst also entweder Das Locale auf der Shell auf latin1 umstellen oder aber Du hast einen Dartsellungsfehler. Wenn Du mal ins ISPConfig SVN rein siehst, stellst Du fest dass in dem Code für diesen Bereich überhaupt nichts geändert wurde von ISPConfig 2.2.25 zu 2.2.27, der ist also identisch.
     
  12. make-fun

    make-fun New Member

    Du hast Recht, da hat sich nichts geändert. Dabei ist mir dann an Hand des Relasedatum aufgefallen, dass ich auf diesem Server von 2.2.23 auf 2.2.27 gegangen bin — nicht wie ich geschrieben hatte von 2.2.25.
    Ich hatte den ganzen Server im Mai von Ubuntu 6.06 auf 8.08 gehoben und dabei das damals aktuelle ISPConfig 2.2.23 mit drauf gespielt — die 25 hatte ich wegen einem anderen Server im Kopf, sorry.

    Ich habe das "Problem" nun einfach durch Hardcodierung in der check_disk.plugin.php beseitigt.
    Auf UTF-8 kann ich nicht verzichten, da Leute aus Asien und Nordeuropa, auf dem Server Arbeiten und es mich fast18 Monate gekostet hat, alle auf UTF-8 zu trimmen — wie oft ich dabei von "Darstellungs-Problemen" verfolgt wurde kannst du sicher erahnen — das will ich nicht noch mal…

    Daher wollte ich der Sache eben auch weiter auf den Grund gehen, denn sonst bekomme ich bald wieder unzählige Emails.
     
  13. Till

    Till Administrator

    Ich werde mal sehen ob wir das irgendwie ändern können. Hast Du die Überschriften hart codiert oder ein utf8_decode benutzt?
     
  14. make-fun

    make-fun New Member

    War faul und habe es hart gemacht… dachte noch, ich lege die Texte evtl. in den Sprachen-Dateien ab — aber English ist hier schon ok. Es ist nur um nicht wieder das alte Thema und Diskussionen um UTF-8 Probleme aufkommen zu lassen ;-)

    Beunruhigend ist es noch etwas, da ich unter dem ISPConfig-Server:81 auch RoundCube nutzen will — für alle User.
    PHP:
        $html_out .= '<div align="center"><table width="80%" border="0" cellspacing="1" cellpadding="4" bgcolor="#CCCCCC">';
    ++    
    $html_out .= '<tr>
            <!-- Fix: --><td class="normal_bold" align="left" bgcolor="#ffffff">Filesystem</td>
            <!-- Fix: --><td class="normal_bold" align="right" bgcolor="#ffffff">Size</td>
            <!-- Fix: --><td class="normal_bold" align="right" bgcolor="#ffffff">Used</td>
            <!-- Fix: --><td class="normal_bold" align="right" bgcolor="#ffffff">Avail</td>
            <!-- Fix: --><td class="normal_bold" align="right" bgcolor="#ffffff">Use%</td>
            <!-- Fix: --><td class="normal_bold" align="left" bgcolor="#ffffff">Mounted</td>
            </tr>'
    ;

        
    $fd popen ("df -h""r");
        while (!
    feof($fd)) {
            
    $buffer .= fgets($fd4096);
        }
            
    $df_out split("\n",$buffer);
    ++    
    array_shift($df_out);
            
    $df_num sizeof($df_out);
            for(
    $i=0;$i<$df_num;$i++){
              if(
    ltrim($df_out[$i]) != $df_out[$i]){
                if(isset(
    $df_out[($i-1)])){
                  
    $df_out[($i-1)] .= $df_out[$i];
                  unset(
    $df_out[$i]);
                }
              }
            }

            
    $html_out .= '<tr>';
            
    $mrow 0;
            foreach(
    $df_out as $df_line) {
            
    $values preg_split ("/[\s]+/"$df_line);
            
    $mln 0;
    --     
    #$font_class = 'normal_bold';
    ++     $font_class 'normal';
    --     
    #if($mrow > 0) $font_class = 'normal';
            
    foreach($values as $value) {
            
    $align 'left';
            if(
    $mln and $mln 5$align 'right';
            if(
    $mln and $value != ""$html_out .= '
            <!-- Check: --><td bgcolor="#FFFFFF" class="'
    .$font_class.'" align="'.$align.'">'.$value.'</td>';
            
    $mln++;
            }
            
    $mrow++;

            
    $html_out .= '
            </tr>'
    ;
            }
     

Diese Seite empfehlen