Perl m. apache2, flush buffer og file IO
Jeg har haft problemer med at få perl på en hjemmeside til at udskrive dele af outputtet fra et script, før hele scriptet var færdigt. Dette har jeg fundet en løsning på her: http://honglus.blogspot.com/2010/08/resolving-perl-cgi-buffering-issue…
Men hvis jeg ændre en "normal" apache2 perl conf til dette eksempel, så kan perl bl.a. ikke finde ud af atlæse/skrive til/fra filer og man får derfor en fejl på siden (og en mystisk intet sigende fejl i error loggen). Ved ikke om dette sætte flere begrænsninger, så langt er jeg slet ikke kommet i mine perl eksperimenter endnu.
Jeg tænker at der måske var en bedre løsning for at få perl til at udskrive dele af et output før at hele scriptet er færdig kørt, da jeg er bange for at eksemplet giver en del begrænsninger, uden dog at vide hvad præcist det gør.
Det virker fint i terminalen med at sætte $!=1 så den flusher ved hvert output og dermed bliver udskrevet, men bare ikke på en web side.
- Log in to post comments
Kommentarer4
Nu kender jeg intet til
Nu kender jeg intet til perl, men for php gælder der at uden output buffering må der ikke være skrevet noget som helst ud til siden (ikke som meget som et komma) før der bliver ændret i http headeren hvilket bl.a. sker ved brug af cookies.
Så derfor, tjek din side for output før du sætter cookies!
Tak for svaret. Det er noget
Tak for svaret. Det er noget sludder det jeg skrev først. Det er ikke cookies der er problemet, dette kan den godt sætte og læse, men jeg kan ikke arbejde med fil IO.
Har rettet indlægget til at omhandle file IO istedet for cookies.
Har rettet indlægget
#2: Har rettet indlægget til at omhandle file IO istedet for cookies.
Ok. Men så har jeg desværre ingen gode råd da jeg som sagt intet aner om Perl :)
Problem fundet. Det er
Problem fundet. Det er mod_deflate der ligger i apache2 som laver "rod" i maskineriet.
Kilde: http://old.nabble.com/-users@httpd--Apache2-2.2.16-buffering-output-td3…