Всем привет! Недавно понадобилось поднять nginx + php на Windows XP. Использовал свежий php (5.2.13) и nginx 0.8.38 (и 0.7.64). Всё отлично стало и заработало. Но... При обращении к nginx одновременно отчего-то выполняется только один скрипт, если попробовать обратиться ко второму (третьему и т.д.) скрипту, во время выполнения первого, он не начинает выполняться до тех пор, пока не освободится первый. При этом такой затык происходит только на запросах связанных с fast-cgi php, если попробовать параллельно запросить статику - она нормально отдаётся. Такое ощущение, что php не принимает новый запрос пока не закончит с первым. В логах при этом кристально чисто. В линукс такая связка работает отлично. PHP запускается и висит демоном так: Код (Text): 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 не предлагать
Ну - раз запущен один процесс, он в одиночку и обслуживает. Почему это вас удивляет? Код (Text): gorbunov@gorbunov:~$ ps ax | grep php 1364 ? Ss 0:00 /usr/bin/php-cgi 1377 ? S 0:00 /usr/bin/php-cgi 1378 ? S 0:00 /usr/bin/php-cgi 1379 ? S 0:00 /usr/bin/php-cgi 1380 ? S 0:00 /usr/bin/php-cgi 1399 ? Ss 0:00 /usr/bin/php-cgi 1408 ? S 0:00 /usr/bin/php-cgi 1409 ? S 0:00 /usr/bin/php-cgi 1410 ? S 0:00 /usr/bin/php-cgi 1411 ? S 0:00 /usr/bin/php-cgi 2645 pts/0 S+ 0:00 grep php gorbunov@gorbunov:~$
Эм... ну, вроде как под Linux делаю тоже самое и всё работает с несколькими запросами, а тут нет. у вас эти /usr/bin/php-cgi веб-сервер сам породил? Это nginx или ? Вы указываете как бекенд что-то вроде "fastcgi_pass 127.0.0.1:1050;" или путь к самой программке? не руками же мне 100 php-cgi.exe на 100 портов вешать, а потом как-то как бекенды конфигурировать, да и не особо оно, вроде бы, конфигурируется... хотя, я могу ошибаться, конечно.
lighty + spawn_fcgi http://redmine.lighttpd.net/projects/spawn-fcgi spawn_fcgi работает и с нжинксом, но не знаю, работает ли под виндой PS/ да, судя по докам под виндой работает с cygwin
а поэтому и нужны вещи вроде php-fpm и spawn_fcgi php-fpm скоро войдет в официальный дистр пхп, и можно будет не иметь этой головной боли вообще.
Большое спасибо за наводку! нашёл на оф.сайте lighttpd порт + исходник spawn_fcgi на Windows - к удивлению компилируется и даже работает =) Единственное директива с количеством потомков не работает, т.к. она не работает и в самом php-cgi.exe . Кажется, это косяк или "особенность" реализации под Windows. будем ждать =) недолго уже осталось, вроде как...