PHP flush funktioniert nicht (1&1 Root Server)

Problembeschreibung
Obwohl flush() verwendet wird, werden Ausgaben mit PHP nicht direkt an den Browser ausgegben.

Problemursache
Das Problem bei mir war, dass PHP standardmäßig als FastCGI application ausgeführt wurde. Warum genau das Probleme verursacht, konnte ich nicht herausfinden, doch die Umstellung auf ausführen als Apache Modul behob das Problem. Wichtig ist auch noch, dass vor jeder Ausgabe  @ob_flush() und @flush() verwendet wird - nur @flush() reicht nicht!

Problemlösung

  1. Vor jeder Ausgabe, die direkt an den Browser gesendet werden soll, @ob_flush() und @flush() einfügen. Beispiel:
    @ob_flush();
    @flush();
    echo 'Das soll direkt an den Browser gesendet werden';
  2. In Plesk bei den Hosting Einstellungen auswählen, dass PHP als Apache Modul ausgeführt werden soll.

 

Informationen

  • Fehler entdeckt
    07. März 2013
  • Problemgebiet
    PHP
  • 1&1 Produkt
    Rootserver 1&1 Server 2012 L 2 Core
  • Betriebssystem
    CentOS 6 mit Parallels Plesk Panel 11 (64 Bit)
  • Keywords
    Flush, PHP, Browser, Ausgabe, Direkt, Apache, Buffer, Puffer, 1und1