Darstellungsfehler nach Update auf 2.2.27

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?
 

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:

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
 

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?
 

Till

Administrator
Wiso willst Du die Shell darauf umstelle? Die Shell ist z.B. /bin/bash, PHP ist keine Shell.
 

Till

Administrator
PHP ist keine Shell, auch die cli Version nicht und was hat das mit diesem Thread zu tun?
 

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:

Till

Administrator
Also möcht ich den Code mit dem CLI-PHP des ISPConfig-Server um zu sehen, was dann ausgegeben wird.
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.
 

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.
 

Till

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

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($fd, 4096);
    }
        $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 > 0 and $mln < 5) $align = 'right';
        if($mln < 6 and $value != "") $html_out .= '
        <!-- Check: --><td bgcolor="#FFFFFF" class="'.$font_class.'" align="'.$align.'">'.$value.'</td>';
        $mln++;
        }
        $mrow++;

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

Werbung

Top