Pinged Johannes as soon as I started working on it in hopes of getting it in 5.3.6... did not hear back with any vetos or no's. On Wed, Mar 09, 2011 at 10:33:10AM -0800, Christopher Jones wrote: > > We're right at the end of the release process for PHP 5.3.6. > Did you check with Johannes before merging? > > Chris > > On 03/09/2011 10:27 AM, Jim Jagielski wrote: > >jimjag Wed, 09 Mar 2011 18:27:30 +0000 > > > >Revision: http://svn.php.net/viewvc?view=revision&revision=309053 > > > >Log: > >Close [PHP-BUG] Req #54152... > >Apache 2.3.12 (and later) will now work correctly with PHP's fcgi > >impl with this patch. > > > >Bug: http://bugs.php.net/54152 (Assigned) Make FPM compatible with Apache > >HTTP Server 2.3 mod_proxy_fcgi > > > >Changed paths: > > U php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_main.c > > > >Modified: php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_main.c > >=================================================================== > >--- php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_main.c 2011-03-09 > >16:41:07 UTC (rev 309052) > >+++ php/php-src/branches/PHP_5_3/sapi/fpm/fpm/fpm_main.c 2011-03-09 > >18:27:30 UTC (rev 309053) > >@@ -1085,6 +1085,7 @@ > > char *env_path_translated = sapi_cgibin_getenv("PATH_TRANSLATED", > > sizeof("PATH_TRANSLATED")-1 TSRMLS_CC); > > char *script_path_translated = env_script_filename; > > char *ini; > >+ int apache_was_here = 0; > > > > /* some broken servers do not have script_filename or argv0 > > * an example, IIS configured in some ways. then they do more > >@@ -1130,6 +1131,30 @@ > > env_path_info = _sapi_cgibin_putenv("PATH_INFO", > > env_path_info TSRMLS_CC); > > } > > > >+#define APACHE_PROXY_FCGI_PREFIX "proxy:fcgi://" > >+ /* Fix proxy URLs in SCRIPT_FILENAME generated by Apache > >mod_proxy_fcgi: > >+ * proxy:fcgi://localhost:9000/some-dir/info.php/test > >+ * should be changed to: > >+ * /some-dir/info.php/test > >+ * See: http://bugs.php.net/bug.php?id=54152 > >+ * https://issues.apache.org/bugzilla/show_bug.cgi?id=50851 > >+ */ > >+ if (env_script_filename&& > >+ strncasecmp(env_script_filename, > >APACHE_PROXY_FCGI_PREFIX, sizeof(APACHE_PROXY_FCGI_PREFIX) - 1) == 0) { > >+ /* advance to first character of hostname */ > >+ char *p = env_script_filename + > >(sizeof(APACHE_PROXY_FCGI_PREFIX) - 1); > >+ while (*p != '\0'&& *p != '/') { > >+ p++; /* move past hostname and port */ > >+ } > >+ if (*p != '\0') { > >+ /* Copy path portion in place to avoid memory > >leak. Note > >+ * that this also affects what > >script_path_translated points > >+ * to. */ > >+ memmove(env_script_filename, p, strlen(p) + 1); > >+ apache_was_here = 1; > >+ } > >+ } > >+ > > if (CGIG(fix_pathinfo)) { > > struct stat st; > > char *real_path = NULL; > >@@ -1201,11 +1226,21 @@ > > * we have to play the game of > > hide and seek to figure > > * out what SCRIPT_NAME should > > be > > */ > >- int slen = len - strlen(pt); > >+ int ptlen = strlen(pt); > >+ int slen = len - ptlen; > > int pilen = env_path_info ? > > strlen(env_path_info) : 0; > >- char *path_info = env_path_info > >? env_path_info + pilen - slen : NULL; > >+ int tflag = 0; > >+ char *path_info; > >+ if (apache_was_here) { > >+ /* recall that > >PATH_INFO won't exist */ > >+ path_info = > >script_path_translated + ptlen; > >+ tflag = (slen != 0&& > >(!orig_path_info || strcmp(orig_path_info, path_info) != 0)); > >+ } else { > >+ path_info = > >env_path_info ? env_path_info + pilen - slen : NULL; > >+ tflag = (orig_path_info > >!= path_info); > >+ } > > > >- if (orig_path_info != > >path_info) { > >+ if (tflag) { > > if (orig_path_info) { > > char old; > > > > > > > > -- > Email: christopher.jo...@oracle.com > Tel: +1 650 506 8630 > Blog: http://blogs.oracle.com/opal/
-- =========================================================================== Jim Jagielski [|] j...@jagunet.com [|] http://www.jaguNET.com/ "Great is the guilt of an unnecessary war" ~ John Adams -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php