[php/f19] - Update to 5.5.17 http://www.php.net/releases/5_5_17.php - fpm: fix script_name with mod_proxy_fcgi

Remi Collet remi at fedoraproject.org
Thu Sep 18 07:55:21 UTC 2014


commit 554cce60ad6daf9495a87f0ed9f4ac37238de89b
Author: Remi Collet <remi at fedoraproject.org>
Date:   Thu Sep 18 08:27:08 2014 +0200

    - Update to 5.5.17 http://www.php.net/releases/5_5_17.php
    - fpm: fix script_name with mod_proxy_fcgi / proxypass, add upstream patch for https://bugs.php.net/65641
    
    (cherry picked from commit 17a31852c7b94d6818e782aa59187952ee22536f)

 .gitignore         |    1 +
 php-bug65641.patch |   63 +++++++++++++++++++++++++++++++++++++++++++++++++++
 php-bug67865.patch |   64 ----------------------------------------------------
 php.spec           |   12 +++++++--
 sources            |    2 +-
 5 files changed, 74 insertions(+), 68 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 5ca21f0..1e90c23 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,3 +29,4 @@ php-5.6.*.xz
 /php-5.5.14-strip.tar.xz
 /php-5.5.15-strip.tar.xz
 /php-5.5.16-strip.tar.xz
+/php-5.5.17-strip.tar.xz
diff --git a/php-bug65641.patch b/php-bug65641.patch
new file mode 100644
index 0000000..d9b31d1
--- /dev/null
+++ b/php-bug65641.patch
@@ -0,0 +1,63 @@
+From 8cac75969e5abb2b6be5bbd489d851a4f9e50979 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi at 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
+
diff --git a/php.spec b/php.spec
index 4866db3..b0b16e9 100644
--- a/php.spec
+++ b/php.spec
@@ -68,7 +68,7 @@
 
 Summary: PHP scripting language for creating dynamic web sites
 Name: php
-Version: 5.5.16
+Version: 5.5.17
 Release: 1%{?dist}
 # All files licensed under PHP version 3.01, except
 # Zend is licensed under Zend
@@ -121,7 +121,7 @@ Patch46: php-5.4.9-fixheader.patch
 Patch47: php-5.4.9-phpinfo.patch
 
 # Upstream fixes (100+)
-Patch100: php-bug67865.patch
+Patch100: php-bug65641.patch
 
 # Security fixes (200+)
 
@@ -732,7 +732,7 @@ support for using the enchant library to PHP.
 %patch47 -p1 -b .phpinfo
 
 # upstream patches
-%patch100 -p1 -b .bug67865
+%patch100 -p1 -b .bug65641
 
 # security patches
 
@@ -1551,6 +1551,12 @@ exit 0
 
 
 %changelog
+* Thu Sep 18 2014 Remi Collet <remi at fedoraproject.org> 5.5.17-1
+- Update to 5.5.17
+  http://www.php.net/releases/5_5_17.php
+- fpm: fix script_name with mod_proxy_fcgi / proxypass
+  add upstream patch for https://bugs.php.net/65641
+
 * Thu Aug 21 2014 Remi Collet <rcollet at redhat.com> 5.5.16-1
 - Update to 5.5.16
   http://www.php.net/releases/5_5_16.php
diff --git a/sources b/sources
index 697534a..899f83c 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-0ccff2dc56cb8889e169bd00b78e7e5a  php-5.5.16-strip.tar.xz
+3b8dd2d8f681d402e3bc876d86863e53  php-5.5.17-strip.tar.xz


More information about the scm-commits mailing list