Sie erwähnen nicht, welchen Webserver Sie verwenden, aber ich gehe hier ein bisschen aus und denke Apache2. Ich habe fast das identische Ding getroffen, das du beschreibst. Ich habe versucht, mein CGI-Skript dazu zu bringen, Informationen zurück zu geben, so wie es fertig war, anstatt das Ganze zu puffern. Arbeitete jiffy in curl, etc., aber gepuffert in einem Browser (so ziemlich jeder Browser), was zumindest ärgerlich war. Ich ging die genauen Schritte durch, die Sie beschreiben. Die Auflösung in meinem Fall sites-enabled/terrifico.com
Konfigurationsdatei in Apache2 (die fragliche Zeile beginnt mit
SetEnvIfNoCase
(Sie können ignorieren das Zeug oberhalb und unterhalb dieser Linie zu ändern war, bin ich nur zeigen, es als Referenz, wo ich ihm gegeben.)
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName test.terrifico.com
ServerAlias test.terrifico.com
SetEnvIfNoCase Request_URI \.cgi$ no-gzip dont-vary
DocumentRoot /var/www/test.terrifico.com
von im Netzwerkverkehr und starren hin und her, es dämmerte schließlich auf mir, dass der Browser war Werbung, dass es eine Deflation für alles akzeptiert (das war Text). Das war zum Beispiel der Unterschied zwischen Browser und Curl. Die ausgeprägte Bit war
Accept-Encoding: gzip, deflate, sdch
Es war ein bisschen über chunking
, aber das hat nicht dieses besondere Problem auswirken. Also bat der Browser um mod_deflate
, um zu kicken, was meine sorgfältig ausspuckenden Bytes besiegte, als ich sie in meinem CGI-Skript bekam. Sie könnten es im Browser ändern, aber es schien sinnvoller, es einmal auf dem Server für die Arbeiten zu ändern.
Vielleicht hilft das.
Nicht sicher, ob das immer falsch war oder etwas in PHP5.6 geändert hat, aber ich musste 'php_flag output_buffering Off' verwenden, um das' Off' zu erhalten. – RiggsFolly
Ich habe "output_buffering" von php.ini von 4096 auf Aus gesetzt und den gesamten Server neu gestartet, verifiziert mit phpinfo(); aber ich habe immer noch das selbe Problem, der Server wartet auf das Laden der Seite, bevor Daten an den Browser gesendet werden. Gibt es eine andere Einstellung in Apache2 oder Ubuntu 16.04? Ich benutze PHP7. – Tarik