On 02/08/2017 12:10 PM, Jim Jagielski wrote:
Doesn't the below make it work without changes.

#define FCGI_MAY_BE_FPM(dconf)                              \
        (dconf &&                                           \
        ((dconf->backend_type == BACKEND_DEFAULT_UNKNOWN) || \
        (dconf->backend_type == BACKEND_FPM)))

No. (To "make it work" we have to cover a gigantic number of use cases, not just PHP-FPM, which is probably why we're talking past each other.)

With your proposed backport, any users who were able to start using FastCGI backends that required an "actual" SCRIPT_FILENAME, in the 2.4.21 or later timeframe, will still have to modify their configs to specify a generic FastCGI backend so that the "proxy:fcgi" stripping can kick in. Existing PHP-FPM users don't change their config, sure, but they'll see yet another behavior change because of the new fixup, which is just too risky IMO.

Compare that to a complete reversion to the previous behavior, plus the addition of the new FCGI SetEnv directive. The users requiring an "actual" SCRIPT_FILENAME will be able to set it manually, which is no worse than having to set the new Backend directive (better, actually, because SCRIPT_FILENAME has no globally accepted meaning). Existing PHP-FPM users are guaranteed the *exact* behavior they saw before 2.4.21, making it less risky to upgrade.

--Jacob

Reply via email to