Pokrewne
menu      BIG BIG problema
menu      problem z wyświetlaniem strony, wyświetla się skrypt zamiast strony
menu      Problem z serwerem RPS, serwer nie odpowiada
menu      MS Vista Business: Ubuntu Desktop 8.04 RPS przez NX Client Desktop Edition [Problem]
menu      Problem z instalacją Quick.Cms/Quick.Cart na 60gp
menu      głośniki 7.1 i Vista problem - brak dźwieku w bocznych głośnikach
menu      problem wyboru zasilania dla laptopa DELL (zasilacz samochodowy)
menu      Problem z mysql ERROR 2002 (HY000): Can't connect to local MySQL server through...
menu      Problem z FTP 530 Sorry, the maximum number of allowed clients (16) are already conne
menu      Samsung DVD-VR350 problem z kolorami, wszystko czarno-biale nawet MENU :(
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • anulka69megan.pev.pl
  • nginx + php5 i wielki problem





    astar. - 16-09-2009 23:24
    nginx + php5 i wielki problem
      zainstalowałem ngnix + php fcgi i pojawia sie problem....
    prosty kod php:

    Kod: $fp = fopen($file, 'rb');
    fseek($fp, $seek_start);
    while(!feof($fp)){
        set_time_limit(0);
        $l = fread($fp, 1024*100);
        echo $l;       
    } kod odczytuje plik z dysku i wysyła partiami do przeglądarki, wszystko działa, tylko, ze na wspomnianym serwerze nginx + php5 fcgi pętla while kończy swoje działanie w ciagu paru sekund, dużo wcześniej niż do przeglądarki klienta dotrą wszystkie dane!! Natomiast na serwerze apache2 + mod php5 pętla po poleceniu echo się zatrzymuje i czeka aż klient odbierze całość danych.

    no i nareszcie pytanie:)
    Dlaczego tak się dzieje, czy jest to spowodowane architekturą poszczególnych serwerów ?? ogólnie potrzebuje, zrobić funkcjonalność na nginx taką jaka jest pod apache2 czy jest to możliwe ??
    dodam jeszcze ze plik php.ini jest ten sam dla php apache i php cgi




    Cuddles - 17-09-2009 07:17
    Czy aby na pewno wysyła to do przeglądarki po kawałku?
    http://pl.php.net/flush



    astar. - 17-09-2009 12:34
    sprawdziłem dokładnie, jedno wywołanie pętli pod apche2 powoduje przesłanie do przeglądarki 102400 bajtów, dokładnie tak jak być powinno, natomiast pod nginx rozmiar tego "kawałka" to 102120...



    komar07 - 17-09-2009 15:22
    spróbuj za echo dać ob_flush(); flush();

    i wywal set_time_limit poza pętle po co ci ono tam?




    astar. - 17-09-2009 16:17
    Cytat:
    spróbuj za echo dać ob_flush(); flush();

    i wywal set_time_limit poza pętle po co ci ono tam?
    cenna uwaga z tym set_time_limit :), zrobiłem jak radzisz niestety w dalszym ciągu całe while wykonuje się w ciągu sekundy, dodam że plik jest spory i pobieram go jakieś 10 min
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • konstruktor.keep.pl
  • Design by flankerds.com