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);
 							}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.