diff options
Diffstat (limited to 'php-bug65641.patch')
-rw-r--r-- | php-bug65641.patch | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/php-bug65641.patch b/php-bug65641.patch deleted file mode 100644 index d9b31d1..0000000 --- a/php-bug65641.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 8cac75969e5abb2b6be5bbd489d851a4f9e50979 Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@php.net> -Date: Mon, 15 Sep 2014 13:29:55 +0200 -Subject: [PATCH] Fixed bug #65641 PHP-FPM incorrectly defines the SCRIPT_NAME - variable when using Apache - -ProxyPass is unable to provide correct PATH_INFO -as it is not aware of file path (while SetHandler is). - -As we can extract PATH_INFO from PATH_TRANSLATED, -we also need to check if present in SCRIPT_NAME -and remove it. - -After applying this patch. -With mod_php -_SERVER["REQUEST_URI"] /info.php/foo/bar?q=1 -_SERVER["SCRIPT_NAME"] /info.php -_SERVER["PATH_INFO"] /foor/bar -_SERVER["PHP_SELF"] /info.php/foo/bar -_SERVER["QUERY_STRING"] q=1 - -With mod_proxy_fcgi + SetHandler -_SERVER["REQUEST_URI"] /info.php/foo/bar?q=1 -_SERVER["SCRIPT_NAME"] /info.php -_SERVER["PATH_INFO"] /foo/bar -_SERVER["PHP_SELF"] /info.php/foo/bar -_SERVER["QUERY_STRING"] q=1 - -With mod_proxy_fcgi + ProxyPass -_SERVER["REQUEST_URI"] /info.php/foo/bar?q=1 -_SERVER["SCRIPT_NAME"] /info.php -_SERVER["PATH_INFO"] /foo/bar -_SERVER["PHP_SELF"] /info.php/foo/bar -_SERVER["QUERY_STRING"] q=1 ---- - sapi/fpm/fpm/fpm_main.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/sapi/fpm/fpm/fpm_main.c b/sapi/fpm/fpm/fpm_main.c -index 56a06f9..331342c 100644 ---- a/sapi/fpm/fpm/fpm_main.c -+++ b/sapi/fpm/fpm/fpm_main.c -@@ -1231,6 +1231,17 @@ static void init_request_info(TSRMLS_D) - SG(request_info).request_uri = orig_script_name; - } - path_info[0] = old; -+ } else if (apache_was_here && env_script_name) { -+ /* Using mod_proxy_fcgi and ProxyPass, apache cannot set PATH_INFO -+ * As we can extract PATH_INFO from PATH_TRANSLATED -+ * 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)) { -+ _sapi_cgibin_putenv("ORIG_SCRIPT_NAME", orig_script_name TSRMLS_CC); -+ env_script_name[snlen-slen] = 0; -+ SG(request_info).request_uri = _sapi_cgibin_putenv("SCRIPT_NAME", env_script_name TSRMLS_CC); -+ } - } - env_path_info = _sapi_cgibin_putenv("PATH_INFO", path_info TSRMLS_CC); - } --- -1.9.2 - |