mirror of
https://github.com/php/php-src.git
synced 2025-08-20 09:24:05 +02:00
Fixed Bug #62172 FPM not working with Apache httpd 2.4 balancer/fcgi setup
Only needed with Apache version < 2.4.12 (ex RHEL-7)
This commit is contained in:
parent
8ee1ae9748
commit
07d2dcdf09
1 changed files with 25 additions and 1 deletions
|
@ -1108,11 +1108,14 @@ static void init_request_info(TSRMLS_D)
|
|||
}
|
||||
|
||||
#define APACHE_PROXY_FCGI_PREFIX "proxy:fcgi://"
|
||||
/* Fix proxy URLs in SCRIPT_FILENAME generated by Apache mod_proxy_fcgi:
|
||||
#define APACHE_PROXY_BALANCER_PREFIX "proxy:balancer://"
|
||||
/* Fix proxy URLs in SCRIPT_FILENAME generated by Apache mod_proxy_fcgi and mod_proxy_balancer:
|
||||
* proxy:fcgi://localhost:9000/some-dir/info.php/test?foo=bar
|
||||
* proxy:balancer://localhost:9000/some-dir/info.php/test?foo=bar
|
||||
* should be changed to:
|
||||
* /some-dir/info.php/test
|
||||
* See: http://bugs.php.net/bug.php?id=54152
|
||||
* http://bugs.php.net/bug.php?id=62172
|
||||
* https://issues.apache.org/bugzilla/show_bug.cgi?id=50851
|
||||
*/
|
||||
if (env_script_filename &&
|
||||
|
@ -1136,6 +1139,27 @@ static void init_request_info(TSRMLS_D)
|
|||
}
|
||||
}
|
||||
|
||||
if (env_script_filename &&
|
||||
strncasecmp(env_script_filename, APACHE_PROXY_BALANCER_PREFIX, sizeof(APACHE_PROXY_BALANCER_PREFIX) - 1) == 0) {
|
||||
/* advance to first character of hostname */
|
||||
char *p = env_script_filename + (sizeof(APACHE_PROXY_BALANCER_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;
|
||||
}
|
||||
/* ignore query string if sent by Apache (RewriteRule) */
|
||||
p = strchr(env_script_filename, '?');
|
||||
if (p) {
|
||||
*p =0;
|
||||
}
|
||||
}
|
||||
|
||||
if (CGIG(fix_pathinfo)) {
|
||||
struct stat st;
|
||||
char *real_path = NULL;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue