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
As far as I can discern these are leftovers of the interactive
shell implementation that was used before PHP 5.4. Now the readline
ext makes use of normal eval calls for this.
So, dropping these until there is evidence to the contrary, as they
currently wouldn't work anyway.
* master: (51 commits)
Update Git rules
Back to -dev (with EOL notice in NEWS)
new NEWS block for the next release
It's 2014 already, fix copyright year where user visible
PHP 5.3.29
Some changes were lost in the merge commit of #66091
Updated NEWS for #66091Fixed#66091
Updated NEWS for #66091
Updated NEWS for #66091Fixed#66091
updated NEWS
updated NEWS
updated NEWS
backported the fix for bug #41577
NEWS entry for e6d93a1 / d73d44c
restore FPM compatibility with mod_fastcgi broken since #694 / 67541, fixes bug 67606
Revert "Merge branch 'pull-request/694' into PHP-5.6"
PHP 5.3.29RC1
Fix missing type checks in various functions
...
Conflicts:
ext/date/php_date.c
ext/standard/math.c
* master:
fix nmake snap when ext name is different in target dll
force atoll macro usage on windows
Enable $ replacement in exif, ldap, pdo_pgsql and tidy
See bug #67635
NEWS
NEWS
improve previous, add message during configure
Fixed bug #67635 php links to systemd libraries without using pkg-config
Improve fix for #66608
Fixed segfault with empty break
New added opcodes don't need to be resloved
Update NEWS
Update NEWS
Update NEWS
Fixed bug #66827 Session raises E_NOTICE when session name variable is array
implemented copy libs of core exts in phpize mode
fix copy the ext dll into the prefix path in phpize mode
fix default prefix in phpize mode
fix file with zero size usage in phpize mode
Conflicts:
Zend/zend_opcode.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
ext/session/session.c
* master: (67 commits)
remove the NEWS entry for the reverted fpm fix
remove the NEWS entry for the reverted fpm fix
remove the NEWS entry for the reverted fpm fix
Revert "Fix Bug #67530 error_log=syslog ignored"
--enable-fpm for the travis build
fix the last fpm NEWS entry, the other bug is related, but not the same what we fixed here
NEWS
NEWS
Fix bug #67091: make install fails to install libphp5.so on FreeBSD 10.0
adding NEWS entry for the fix for bug #65641
Updated NEWS file for recent phpdbg fixes
Fixed issue krakjoe/phpdbg#94 - List behavior is inconsistent
Fix issue krakjoe/phpdbg#97 - list now appends a newline if there is none The prompt should always ensure it is on a newline
Fixed test
Inform about back command existence in help - Fixeskrakjoe/phpdbg#100 No way to list the current stack/frames
Fix issue krakjoe/phpdbg#98 break if does not seem to work
Fix issue krakjoe/phpdbg#99 register function has the same behavior as run
Fix readline/libedit (Thanks to @remicollet)
Replace incorrect `E` command with `ev` in watch help
Fix typo in `finish` help
...
Conflicts:
Zend/zend_ast.c
Zend/zend_highlight.c
Zend/zend_indent.c
ext/spl/spl_array.c
ext/spl/spl_observer.c
ext/standard/info.c
* PHP-5.6:
remove the NEWS entry for the reverted fpm fix
remove the NEWS entry for the reverted fpm fix
remove the NEWS entry for the reverted fpm fix
Revert "Fix Bug #67530 error_log=syslog ignored"
* PHP-5.5:
remove the NEWS entry for the reverted fpm fix
remove the NEWS entry for the reverted fpm fix
Revert "Fix Bug #67530 error_log=syslog ignored"
In PHP-5.6 and below each argument passed to user function was copies on VM stack twice.
Now we always have ZEND_INIT_FCALL (or simular) opcode that pushes "call frame" on top of VM stack.
"Call frame" is actually the same zend_execute_data structure.
All the following ZEND_SEND instructions push arguments on top of the stack in a way that they directly comes into corresponding CV variables of the called frame. Extra arguments are copied at the end of stack frame (after all CV and TMP variables) on function enterance.
There are two minor incompatibilities:
1) It's not allowed to decalre functions redefining arguments e.g. "function foo($a,$a) {}".
2) func_get_arg() and func_get args() return the current value of argument and not the original value that was sent.
Apache 2.4.10+ will allow the following:
```
<FilesMatch \.php$>
SetHandler proxy:fcgi://localhost:9000
</FilesMatch>
```
This is much easier than using `ProxyPassMatch` (which prevents rewriting and other stuff) and rewrites (which are a bag of hurt because when combined with user-land `.htaccess` rewrites, there's always rewrite loops, prefix breakage etc (I've tried, for weeks).
It's basically the future of using Apache (via `mod_proxy_fcgi`) together with PHP-FPM. It's also available for older versions as a standalone module, very easy to install: https://gist.github.com/progandy/6ed4eeea60f6277c3e39
However, the two bits of code this commit deletes interfere with that. They both cover CGI-only mode and were copied from that SAPI into the FPM source. See e.g. https://bugs.php.net/bug.php?id=47042
The first deleted part mangled `SCRIPT_NAME` if something like
```
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) index.php/$1 [L]
```
is used (i.e. rewriting to `PATH_INFO`. The second part drops `PATH_INFO` if there was a `REDIRECT_URL` (with CGI mode, `SCRIPT_FILENAME` in Apache is the path to the PHP binary, and `PATH_INFO` contains the name of the script to run).
Clearly, neither applies in the case of FPM, so both are safe to delete.