Re: PHP 5.4.33 RC1 => mod_proxy_fcgi still broken

From: Date: Fri, 05 Sep 2014 13:13:31 +0000
Subject: Re: PHP 5.4.33 RC1 => mod_proxy_fcgi still broken
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-77071@lists.php.net to get a copy of this message
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Le 05/09/2014 14:54, Philip Hofstetter a écrit : > Applying the patch fpm_main-script_name-v2.patch proposed on > https://bugs.php.net/bug.php?id=65641 fixes the issue for me. This patch doesn't check for tflag, which seems usefull... Another try attached. Remi. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iEYEARECAAYFAlQJtvsACgkQYUppBSnxahgSgACg4XwYbfGiw1Dygg1NboYwG3v8 lyEAnRV+ahyqt5RwyrT8sUXdoZ6KeS5h =teMn -----END PGP SIGNATURE-----

--- /work/php/php-5.6.0/sapi/fpm/fpm/fpm_main.c 2014-08-27 15:31:35.000000000 +0200 +++ ../sapi/fpm/fpm/fpm_main.c 2014-09-05 15:10:06.117825254 +0200 @@ -1237,6 +1237,20 @@ SG(request_info).request_uri = orig_script_name; } path_info[0] = old; + } else if (apache_was_here && env_script_name) { + /* No PATH_INFO in request, but can extract it in PATH_TRANSLATED + * so it is probably also in SCRIPT_NAME and need to be removed + */ + int snlen = strlen(env_script_name); + if (snlen>slen && !strcmp(env_script_name+snlen-slen, path_info)) { + char old; + + _sapi_cgibin_putenv("ORIG_SCRIPT_NAME", orig_script_name TSRMLS_CC); + old = env_script_name[snlen-slen]; + env_script_name[snlen-slen] = 0; + _sapi_cgibin_putenv("SCRIPT_NAME", env_script_name TSRMLS_CC); + env_script_name[snlen-slen] = old; + } } env_path_info = _sapi_cgibin_putenv("PATH_INFO", path_info TSRMLS_CC); }
« previous php.internals (#77071) next »