Discussion:
[PHP-INSTALL] Veracity of statement that FastCGI is always enabled cannot be disabled in PHP 5.3
Ryan Schmidt
2009-07-02 13:23:40 UTC
Permalink
Hi. I'm the maintainer of PHP in MacPorts and I'm in the process of
updating our php5 port to version 5.3.0.

In PHP 5.2.x and earlier you had to choose which web SAPI you wanted
-- Apache 1, Apache 2, or FastCGI. The CLI SAPI was always built in
any case, in addition to the web SAPI you selected, but you couldn't
have both an Apache SAPI and the FastCGI SAPI built at the same time;
you had to run "./configure" and "make" twice each, and this is what
my php5 port currently does to allow a user to install both an Apache
SAPI and the FastCGI SAPI at the same time if desired.

On http://www.php.net/manual/en/migration53.sapi.php it says of PHP
5.3 that "FastCGI is now always enabled and can not be disabled. See
sapi/cgi/CHANGES for more details." The same text appears in the NEWS
file. In sapi/cgi/CHANGES it says "Now fastcgi is always enabled".

Based on these statements, I assumed the FastCGI SAPI would now
always be built, just like the CLI SAPI always gets built. But it
appears that if you use --with-apxs2 or --with-apxs, PHP 5.3 does in
fact disable the FastCGI SAPI, and only builds that Apache and CLI
SAPIs, just like PHP 5.2.x did.


sapi/cgi/CHANGES also states "In PHP5.3 all additional configure
options (except --enable-cgi) are removed" and "./configure --help"
lists the option "--disable-cgi Disable building CGI
version of PHP". Using --disable-cgi, the FastCGI module does not get
built.


So I believe the statement "FastCGI is now always enabled" is false,
because FastCGI is not enabled if you request an Apache SAPI. And I
believe the statement that it "can not be disabled" is false, because
the --disable-cgi configure argument does disable it. I believe the
correct documentation of PHP 5.3's capabilities would be, "The
FastCGI module is now built by default, but can be disabled by using
--disable-cgi".


Note: I did the above tests using 5.3.0RC4 not 5.3.0 final. This is
my first time posting to a PHP mailing list. I wanted to check here
for guidance before filing a bug for these issues.

I searched Google and the mailing list archive at marc.info and
couldn't find a prior discussion of these issues relating to PHP 5.3,
but if there is one and I've missed it I'd of course appreciate a
link to it.


P.S: There is a typo on the mailing lists page's description of this
list. It says "How to install PHP with partiucular configurations,
and servers". That should be "particular" not "partiucular" and the
comma should be removed.

http://www.php.net/mailing-lists.php
Ryan Schmidt
2009-07-07 04:24:32 UTC
Permalink
Post by Ryan Schmidt
So I believe the statement "FastCGI is now always enabled" is
false, because FastCGI is not enabled if you request an Apache
SAPI. And I believe the statement that it "can not be disabled" is
false, because the --disable-cgi configure argument does disable
it. I believe the correct documentation of PHP 5.3's capabilities
would be, "The FastCGI module is now built by default, but can be
disabled by using --disable-cgi".
Via private mail I was asked to re-post this to the internals list,
where I received the response that these statements were meant to be
taken with respect to the CGI SAPI, not PHP as a whole. Thus, if you
now build the PHP CGI SAPI, you will always get the FastCGI version;
you can no longer get the plain-CGI version. However, the
restrictions on when you can build the CGI SAPI at all are the same
as in previous versions.

http://marc.info/?l=php-internals&m=124669326803150&w=2
Post by Ryan Schmidt
P.S: There is a typo on the mailing lists page's description of
this list. It says "How to install PHP with partiucular
configurations, and servers". That should be "particular" not
"partiucular" and the comma should be removed.
This has been corrected.

Loading...