Re: [PHP-DEV] PHP 5.4.33 RC1 => mod_proxy_fcgi still broken
[email protected] (Remi Collet)
| Newsgroups | php.internals |
|---|---|
| Message-ID | <[email protected]> |
-----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-----
fpmfix.txt
(text/plain, 1 KB)
--- /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);
}