Bug #79382 [Opn]: Fatal error: Cannot redeclare getallheaders() in ...
| From: | daverandom@php.net | Date: | Sat, 14 Mar 2020 02:49:54 +0000 |
| Subject: | Bug #79382 [Opn]: Fatal error: Cannot redeclare getallheaders() in ... | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-226102@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=79382&edit=1
ID: 79382
Updated by: daverandom@php.net
Reported by: admin at franceserv dot fr
Summary: Fatal error: Cannot redeclare getallheaders() in ...
Status: Open
Type: Bug
Package: *General Issues
Operating System: Linux
PHP Version: 7.3.15
Block user comment: N
Private report: N
New Comment:
Reading through the docs for the opcache ini settings[1] I note that the default value for
opcache.optimization_level was changed in 7.3 to remove a flag, and a brief wander through the
source reveals that the flag in question acquired new meaning between 7.2 and 7.3[2], and is also
described as "unsafe", as is one of its neighbours that was removed from the default in
5.6.18. Hypothetically speaking, if one were to set up a new PHP installation by, say, copy-pasting
the same ini files that originate in ancient history and have been passed from version to version
since PHP 5, and hypothetically they maybe had buggered about with opcache related settings at some
point and "turned everything on to make it faster", then hypothetically they might end up
in a situation where those unsafe flags are set. Hypothetically.
I could be way off base there, but whatever is going on this has opcache fingerprints all over it.
The fact that you are consistently seeing the same issue across many point releases in two minor
version branches indicates that this is a config/environment issue. As such, the best place to start
would be to conduct a thorough review of the active PHP configuration (i.e. phpinfo()), paying
particularly close attention to opcache.
I feel like this is stating the obvious, but if were the case that multiple large scale foss
projects had been fundamentally incompatible with new releases of PHP for the last 14+ months,
someone would probably have noticed before now.
[1] https://www.php.net/manual/en/opcache.configuration.php
[2] https://github.com/php/php-src/commit/a02a126d54077d1f2f3c9a54a00a7e75d5b8f562#diff-18518eac33b6061b9da5d72d4637417a
Previous Comments:
------------------------------------------------------------------------
[2020-03-13 23:35:41] bugreports at gmail dot com
developers simply need to learn that it's a terrible idea to taint the global namespace with
random *unprefixed* userland functions
eveniif the function_exists() hack would work what makes you thinking that your handcrafted function
is signature and *behavior" compatible?
------------------------------------------------------------------------
[2020-03-13 23:11:12] admin at franceserv dot fr
Description:
------------
Hello,
Several websites are affected (Wordpress, NextCloud, PMB, Phpbb etc ...) on PHP 7.3.x till this
version (7.3.15) and same with PHP 7.4 till now since several month.
The problem isn't present with PHP 7.2.x and lower.
The affected function is : if (!function_exists('getallheaders'))
With PHP 7.3 and 7.4 the following error is reported :
Fatal error: Cannot redeclare getallheaders() in ...
With exactly the same website without modification files the problem is not present on PHP 7.2 and
lower.
Sample error message on PHP 7.3 and 7.4 :
Nextcloud : Fatal error: Cannot redeclare getallheaders() in
/home/httpd/*/*/*/*/*/3rdparty/ralouphie/getallheaders/src/getallheaders.php on line 10
PhpBB : /home/httpd/*/*/*/*/*/forum/vendor/ralouphie/getallheaders/src/getallheaders.php on line 10
PMB : /home/httpd/*/*/*/*/*/includes/apache_functions.inc.php on line 10
Wordpress etc ...
All web developers are saying to rename the function "function getallheaders()" to avoid
this error message ... which is not possible to everybody which are not developers ...
I'm using PHP 7.2, 7.3 and 7.4 on PHP-FPM with compilation install.
Someone could solve this problem which become more visible since people are upgrading their website
to PHP 7.3 and + ?
Thank you in advance.
Actual result:
--------------
Fatal error: Cannot redeclare getallheaders() in ...
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=79382&edit=1