apache => nginx + fastcgi + php

Igor Sysoev is at rambler-co.ru
Tue Feb 15 12:50:22 MSK 2005


On Tue, 15 Feb 2005, Dmitry Morozovsky wrote:

> On Sun, 13 Feb 2005, Igor Sysoev wrote:
>
> IS> 2) Проверил C-шную программу из примера под FreeBSD 4.8. Не работает
> IS>    так же, как не работал перловый скрипт. Вывод - проблема не в перле,
> IS>    а в FastCGI (библиотеке или cgi-fcgi).
>
> Помнится, в RELENG_4 некоторое время назад что-то делали с пайпами. Что нужно
> проверять, я б на современном попробовал?

Пример из devkit:
------------
#include "fcgi_stdio.h"
#include <stdlib.h>

int main(void)
{
     int count = 0;
     while(FCGI_Accept() >= 0)
         printf("Content-type: text/html\r\n"
                "\r\n"
                "<title>FastCGI Hello!</title>"
                "<h1>FastCGI Hello!</h1>"
                "Request number %d running on host <i>%s</i>\n",
                 ++count, getenv("SERVER_NAME"));
     return 0;
}
------------

Собиралось это так:
------------
FCGI =          fcgi-2.4.0

$(WORK)/$(FCGI)/.build:
                 test -d $(WORK) || mkdir $(WORK)

                 gunzip -c $(DIST)/$(FCGI).tar.gz | ( cd $(WORK); tar xf - )

                 cd $(WORK)/$(FCGI)                                      \
                 && ./configure                                          \
                 && make

                 touch $@


fcgi_tcp:       $(WORK)/fcgi fcgi_tcp_run
fcgi_tcp_run:
                 $(WORK)/$(FCGI)/cgi-fcgi/cgi-fcgi                       \
                         -start -connect localhost:9001                  \
                         $(WORK)/fcgi 1

fcgi_unix:      $(WORK)/fcgi fcgi_unix_run
fcgi_unix_run:
                 $(WORK)/$(FCGI)/cgi-fcgi/cgi-fcgi                       \
                         -start -connect /tmp/fcgi                       \
                         $(WORK)/fcgi 1


$(WORK)/fcgi:   $(WORK)/$(FCGI)/.build
                 test -d $(WORK) || mkdir $(WORK)
                 $(CC) -o $@ -I $(WORK)/$(FCGI)/include                  \
                         test/fcgi/fcgi.c                                \
                         $(WORK)/$(FCGI)/libfcgi/.libs/libfcgi.a
------------
fcgi_tcp просто циклится в accept() (даже на 5.3),
А fcgi_unix на 5.3 работает, а на 4.8 не работает.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list