За последние 24 часа нас посетили 18079 программистов и 1660 роботов. Сейчас ищут 1683 программиста ...

php-cgi.exe +Windows+ nginx = одновременно только 1 запрос??

Тема в разделе "Установка PHP", создана пользователем iWarior, 1 июн 2010.

  1. iWarior

    iWarior Активный пользователь

    С нами с:
    1 июн 2010
    Сообщения:
    4
    Симпатии:
    0
    Всем привет!

    Недавно понадобилось поднять nginx + php на Windows XP. Использовал свежий php (5.2.13) и nginx 0.8.38 (и 0.7.64). Всё отлично стало и заработало. Но...

    При обращении к nginx одновременно отчего-то выполняется только один скрипт, если попробовать обратиться ко второму (третьему и т.д.) скрипту, во время выполнения первого, он не начинает выполняться до тех пор, пока не освободится первый.

    При этом такой затык происходит только на запросах связанных с fast-cgi php, если попробовать параллельно запросить статику - она нормально отдаётся. Такое ощущение, что php не принимает новый запрос пока не закончит с первым. В логах при этом кристально чисто. В линукс такая связка работает отлично.

    PHP запускается и висит демоном так:
    Код (Text):
    1. C:\php\php-cgi.exe -b 127.0.0.1:9001 -c "c:\php\php.ini"
    Нашёл в сети человечка, пишушего свой веб-сервер, который столкнулся с такой же проблемой, что ещё больше меня уверило в том, что, скорее всего, в php-cgi под Windows что-то не так.

    Пробовал ли кто-то работать с php-cgi под Windows? Буду благодарен любому совету.

    Всем заранее большое спасибо :)!

    PS: Большая просьба IIS и Apache не предлагать :)
     
  2. Ну - раз запущен один процесс, он в одиночку и обслуживает. Почему это вас удивляет?
    Код (Text):
    1. gorbunov@gorbunov:~$ ps ax | grep php
    2.  1364 ?        Ss     0:00 /usr/bin/php-cgi
    3.  1377 ?        S      0:00 /usr/bin/php-cgi
    4.  1378 ?        S      0:00 /usr/bin/php-cgi
    5.  1379 ?        S      0:00 /usr/bin/php-cgi
    6.  1380 ?        S      0:00 /usr/bin/php-cgi
    7.  1399 ?        Ss     0:00 /usr/bin/php-cgi
    8.  1408 ?        S      0:00 /usr/bin/php-cgi
    9.  1409 ?        S      0:00 /usr/bin/php-cgi
    10.  1410 ?        S      0:00 /usr/bin/php-cgi
    11.  1411 ?        S      0:00 /usr/bin/php-cgi
    12.  2645 pts/0    S+     0:00 grep php
    13. gorbunov@gorbunov:~$
     
  3. iWarior

    iWarior Активный пользователь

    С нами с:
    1 июн 2010
    Сообщения:
    4
    Симпатии:
    0
    Эм... ну, вроде как под Linux делаю тоже самое и всё работает с несколькими запросами, а тут нет.

    у вас эти /usr/bin/php-cgi веб-сервер сам породил? Это nginx или ? Вы указываете как бекенд что-то вроде "fastcgi_pass 127.0.0.1:1050;" или путь к самой программке? :)

    не руками же мне 100 php-cgi.exe на 100 портов вешать, а потом как-то как бекенды конфигурировать, да и не особо оно, вроде бы, конфигурируется... хотя, я могу ошибаться, конечно.
     
  4. lighty + spawn_fcgi
    http://redmine.lighttpd.net/projects/spawn-fcgi

    spawn_fcgi работает и с нжинксом, но не знаю, работает ли под виндой

    PS/ да, судя по докам под виндой работает с cygwin
     
  5. а поэтому и нужны вещи вроде php-fpm и spawn_fcgi

    php-fpm скоро войдет в официальный дистр пхп, и можно будет не иметь этой головной боли вообще.
     
  6. iWarior

    iWarior Активный пользователь

    С нами с:
    1 июн 2010
    Сообщения:
    4
    Симпатии:
    0
    Большое спасибо за наводку!

    нашёл на оф.сайте lighttpd порт + исходник spawn_fcgi на Windows - к удивлению компилируется и даже работает =)

    Единственное директива с количеством потомков не работает, т.к. она не работает и в самом php-cgi.exe . Кажется, это косяк или "особенность" реализации под Windows.

    будем ждать =) недолго уже осталось, вроде как...
     
  7. Ну да, в транке он уже есть, да.