Bug #80864 [Com]: opcache.file-cache - problems on shared hosting
| From: | t dot fronk at gmx dot net | Date: | Thu, 18 Mar 2021 00:13:34 +0000 |
| Subject: | Bug #80864 [Com]: opcache.file-cache - problems on shared hosting | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-232839@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=80864&edit=1
ID: 80864
Comment by: t dot fronk at gmx dot net
Reported by: t dot fronk92 at gmx dot de
Summary: opcache.file-cache - problems on shared hosting
Status: Open
Type: Bug
Package: opcache
Operating System: Debian 10
PHP Version: 7.4.16
Block user comment: N
Private report: N
New Comment:
I have these Problems with all 7.4 Versions, since release. When opcache.file-cache and
opcache.file-cache-only are active -> i only get problems.
Removing the file-cache folder is only a very small fix. On next service restart (systemctl restart
php7.4-fpm) i get the same Problems - with "reload" it needs a little bit more time to
crash.
But the result is the same:
opcache.file-cache with opcache.file-cache-only looks very buggy in 7.4.
I want to use this function on a shared hosting server with multiple websites. So i read the PHP
Docs and i understand that opcache.file-cache and opcache.file-cache-only can solve these security
problems because there is no shared opcache and every website has his own opcache-folder.
But it dont work as expected.
Now i use OPcache without file-cache and these settings:
php.ini:
opcache.enable = 1
opcache.memory_consumption = 5120
opcache.interned_strings_buffer = 64
opcache.max_accelerated_files = 1000000
opcache.validate_timestamps = 1
opcache.revalidate_freq = 0
opcache.validate_permission = 1
opcache.validate_root = 1
...rest Default
FPM-POOL:
php_admin_value[opcache.enable] = 1
php_admin_value[opcache.restrict_api] = /home/website123/wpdocs/
php_admin_value[disable_functions] = opcache_get_configuration,opcache_get_status,...
This solutions works now without problems - or better said: until now :)
Previous Comments:
------------------------------------------------------------------------
[2021-03-17 10:15:03] php at i8i dot fr
I'm pretty sure. I got the problem on 3 vhosts on 2 different servers. It worked with the same
fix.
Here was the errors (even with 2G of memory limit) :
[16-Mar-2021 15:21:04 Europe/Paris] PHP Fatal error: Allowed memory size of 268435456 bytes
exhausted (tried to allocate 40747520404 bytes) in
/var/www/***/www/vendor/twig/twig/src/Extension/EscaperExtension.php on line 204
[16-Mar-2021 20:27:37 Europe/Paris] PHP Fatal error: Allowed memory size of 268435456 bytes
exhausted (tried to allocate 36081806504 bytes) in
/var/www/***/www/vendor/twig/twig/src/Extension/EscaperExtension.php on line 204
Mar 16 15:21:15 vm-dev kernel: [1157155.218584] php-fpm7.4[23089]: segfault at 8 ip 000056182eb6040d
sp 00007ffc8d1f0100 error 4 in php-fpm7.4[56182e94c000+26d000]
Mar 16 20:27:46 vm-dev kernel: [1175545.476694] php-fpm7.4[6717]: segfault at 7fe7b5462dc8 ip
0000558c3ef4d3c4 sp 00007ffcf683c8a0 error 4 in php-fpm7.4[558c3ed39000+26d000]
------------------------------------------------------------------------
[2021-03-17 09:35:31] nikic@php.net
@php at i8i dot fr: That's odd. There has only been a very small number of changes to opcache
between PHP 7.4.15 and PHP 7.4.16: https://github.com/php/php-src/compare/PHP-7.4.15...PHP-7.4.16#diff-b66a794224587a12f8650298f931f4feafb7734f00885ad885f609a68e840949
Both of these changes don't affect file cache.
------------------------------------------------------------------------
[2021-03-17 09:29:40] php at i8i dot fr
Hi,
I get this problem too when PHP switch from 7.4.15 to 7.4.16.
I had to purge all Opcache file cache.
So in your case, try to remove all this folders : /home/website1/opcache/*
Best regards,
Arnaud
------------------------------------------------------------------------
[2021-03-14 16:41:34] t dot fronk92 at gmx dot de
Description:
------------
Hi,
i have a server with multiple WordPress Websites. Every Website has his own User and PHP-FPM Pool.
I tried to activate OPcache securely - because of the Shared Cache Problem - with this settings in
every Pool:
php_admin_value[opcache.enable] = 1
php_admin_value[opcache.enable_cli] = 0
php_admin_value[opcache.memory_consumption] = 256
php_admin_value[opcache.max_accelerated_files] = 32531
php_admin_value[opcache.validate_timestamps] = 1
php_admin_value[opcache.revalidate_freq] = 0
;php_admin_value[opcache.fast_shutdown] = 0
php_admin_value[opcache.file_cache] = /home/website1/opcache
php_admin_value[opcache.file_cache_only] = 1
php_admin_value[opcache.validate_permission] = 1
Every Pool has his own settings for file-cache. I understand these settings that there is no shared
memory... only the file-cache with 256 MB for every website.
But it didnt work as expected. NGINX has many SEGFAULTS with PHP7.4 in error.log. When i deactivate
OPcache all is working fine.
With PHP7.3 i never get these SEGFAULTS.
Maybe there is a Bug in PHP or Configs are wrong - i really dont know.
I hope you can help me or show me a working solution. THX
Test script:
---------------
I dont have.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=80864&edit=1