What's the config for this? I am struggling to get PATH_INFO set in a non SetHandler situation.
On Wed, Jan 25, 2017 at 10:52 PM, <j...@apache.org> wrote: > Author: jim > Date: Thu Jan 26 03:52:34 2017 > New Revision: 1780328 > > URL: http://svn.apache.org/viewvc?rev=1780328&view=rev > Log: > Adjust as needed > > Modified: > httpd/httpd/trunk/modules/mappers/mod_actions.c > httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c > > Modified: httpd/httpd/trunk/modules/mappers/mod_actions.c > URL: > http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/mappers/mod_actions.c?rev=1780328&r1=1780327&r2=1780328&view=diff > ============================================================================== > --- httpd/httpd/trunk/modules/mappers/mod_actions.c (original) > +++ httpd/httpd/trunk/modules/mappers/mod_actions.c Thu Jan 26 03:52:34 2017 > @@ -186,7 +186,8 @@ static int action_handler(request_rec *r > ap_field_noparam(r->pool, r->content_type); > > if (action && (t = apr_table_get(conf->action_types, action))) { > - if (*t++ == '0' && r->finfo.filetype == APR_NOFILE) { > + int virtual = (*t++ == '0' ? 0 : 1); > + if (!virtual && r->finfo.filetype == APR_NOFILE) { > ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, APLOGNO(00652) > "File does not exist: %s", r->filename); > return HTTP_NOT_FOUND; > @@ -197,6 +198,9 @@ static int action_handler(request_rec *r > * (will be REDIRECT_HANDLER there) > */ > apr_table_setn(r->subprocess_env, "HANDLER", action); > + if (virtual) { > + apr_table_setn(r->notes, "virtual_script", "1"); > + } > } > > if (script == NULL) > > Modified: httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c > URL: > http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c?rev=1780328&r1=1780327&r2=1780328&view=diff > ============================================================================== > --- httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c (original) > +++ httpd/httpd/trunk/modules/proxy/mod_proxy_fcgi.c Thu Jan 26 03:52:34 2017 > @@ -269,6 +269,7 @@ static apr_status_t send_environment(pro > apr_status_t rv; > apr_size_t avail_len, len, required_len; > int next_elem, starting_elem; > + int fpm = 0; > fcgi_req_config_t *rconf = ap_get_module_config(r->request_config, > &proxy_fcgi_module); > fcgi_dirconf_t *dconf = ap_get_module_config(r->per_dir_config, > &proxy_fcgi_module); > > @@ -301,6 +302,8 @@ static apr_status_t send_environment(pro > *qs = '\0'; > } > } > + } else { > + fpm = 1; > } > > if (newfname) { > @@ -318,6 +321,23 @@ static apr_status_t send_environment(pro > ap_add_common_vars(r); > ap_add_cgi_vars(r); > > + if (fpm || apr_table_get(r->notes, "virtual_script")) { > + /* > + * Adjust SCRIPT_NAME, PATH_INFO and PATH_TRANSLATED for PHP-FPM > + * TODO: Right now, PATH_INFO and PATH_TRANSLATED look OK... > + */ > + const char *pend; > + const char *script_name = apr_table_get(r->subprocess_env, > "SCRIPT_NAME"); > + pend = script_name + strlen(script_name); > + if (r->path_info && *r->path_info) { > + pend = script_name + ap_find_path_info(script_name, > r->path_info) - 1; > + } > + while (pend != script_name && *pend != '/') { > + pend--; > + } > + apr_table_setn(r->subprocess_env, "SCRIPT_NAME", pend); > + } > + > /* XXX are there any FastCGI specific env vars we need to send? */ > > /* XXX mod_cgi/mod_cgid use ap_create_environment here, which fills in > > -- Eric Covener cove...@gmail.com