Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:44597 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 36497 invoked from network); 1 Jul 2009 19:26:50 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 1 Jul 2009 19:26:50 -0000 X-Host-Fingerprint: 91.123.14.188 unknown Received: from [91.123.14.188] ([91.123.14.188:22732] helo=localhost.localdomain) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id A9/0A-24906-978BB4A4 for ; Wed, 01 Jul 2009 15:26:49 -0400 Message-ID: To: internals@lists.php.net Reply-To: "Gelu Kelunden" References: <96158496-0C9A-4568-9A74-2D606730D09A@darkrainfall.org> In-Reply-To: <96158496-0C9A-4568-9A74-2D606730D09A@darkrainfall.org> Date: Wed, 1 Jul 2009 22:26:40 +0300 Lines: 76 MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=response Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Windows Mail 6.0.6001.18000 X-MimeOLE: Produced By Microsoft MimeOLE V6.0.6001.18049 X-Posted-By: 91.123.14.188 Subject: Re: [PHP-DEV] CGI and FastCGI SAPI From: gelu.kelu@gmail.com ("Gelu Kelunden") Actually I see it a step forward. In the beginning, the "cgi" SAPI implemented only the CGI protocol. Support for FastCGI was added gradually on top of the pure CGI implementation. In order to test this "non-stable" code, one would have to use "--enable-fastcgi". Now FastCGI code is stable enough (and also FastCGI got more widespread and now is "the" way to do it) to be built by default. And, as of 5.3.0, you cannot build a CGI-only executable anymore. New features will definately be added to the FastCGI implementation and I this it might be good to make the FastCGI SAPI stand-alone and not keep arround the CGI-only legacy code. Gelu "Gwynne Raskind" wrote in message news:96158496-0C9A-4568-9A74-2D606730D09A@darkrainfall.org... > On Jul 1, 2009, at 2:37 PM, Gelu Kelunden wrote: >> I think that the official FastCGI implementation will eventually evolve >> into something like PHP-FPM, if not even more. >> >> What I'm saying is that code that handles daemonization (uid/gid/ >> chroot/log), workers mgmt (spawing/safe-shutdown), daemon config file >> (not php.ini or php-cgi.ini) should not be present in the pure CGI SAPI >> implementation, but in a different FastCGI-only SAPI. > > This seems to me as if it would be a step backwards. For a long time CGI > and FastCGI were highly separate setups; you had to use configure flags > to enable FastCGI, and so forth. In 5.3 they were unified completely: you > can't have one without the other anymore. Why would you need to? > > -- Gwynne > >> "Michael Shadle" wrote in message >> news:bd9320b30907011117q4fc2c2c3hbffbf289679e6b9a@mail.gmail.com ... >>> I think it would be a good idea to also include PHP-FPM in your >>> investigation. >>> >>> On Wed, Jul 1, 2009 at 11:02 AM, Gelu Kelunden >>> wrote: >>>> Hi, >>>> >>>> I'm trying to understand how difficult it is to create a new SAPI, so >>>> I >>>> started to poke my nose inside the "cgi" SAPI source code. I saw that >>>> "cgi_main.c" implements both the CGI and the FastCGI protocols and I >>>> kinda >>>> got lost inside all those if-else lines (I tried to take out the >>>> FastCGI >>>> code and failed miserably). I'm wondering if it's not better to have 2 >>>> different SAPIs, one for CGI and for FastCGI. >>>> >>>> Advantages of this "split" would be: >>>> - the source code will be more readable without all those if-else >>>> statements >>>> - we would have 2 executables that do 2 different jobs, unlike now >>>> where >>>> php-cgi does both; each executable could then be further optimized for >>>> the >>>> exact job they are performing >>>> >>>> Disadvantages I see: >>>> - maintaning 2 SAPI implementaion would require more work (since CGI >>>> and >>>> FastCGI both share most of the SAPI code, any change would have to be >>>> replicated twice) >>>> - break backward compatibility (where php-cgi handles both CGI and >>>> FastCGI) >>>> >>>> Thank you for your time, >>>> Gelu >