OPCache Warnmeldungen

CMSimple 4.0 und höher
Post Reply
meyomey
Posts: 16
Joined: Tue 17. May 2016, 11:52

OPCache Warnmeldungen

Post by meyomey » Wed 19. Jun 2019, 19:22

Hallo Gert,
vielen Dank für das Update auf 4.7.8

Mit meinem Webhoster netcup (php Version 7.2.19) scheint es nicht zu funktionieren in Verbindung mit OPCache.
Bei jedem Aufruf der Webseite erscheint eine Warnung in der Error.log, z.B.:

[Wed Jun 19 18:57:14 2019] [warn] [client 54.36.148.237] mod_fcgid: stderr: PHP Notice: Undefined offset: 0 in /var/www/vhosts/hosting.xxxxx.netcup.net/httpdocs/cmsimple/cmsimple/cms.php on line 40

meine cms.php, Zeile 40
if(function_exists('opcache_get_status') && opcache_get_status(true)[0] == 1)ini_set('opcache.enable', 0);

meine PHP-Konfiguration (Zend OPcache):

Code: Select all

Opcode Caching 	Up and Running
Optimization 	Enabled
SHM Cache 	Enabled
File Cache 	Disabled
Startup 	OK
Shared memory model 	mmap
Cache hits 	10872
Cache misses 	150
Used memory 	21807856
Free memory 	112409872
Wasted memory 	0
Interned Strings Used memory 	929792
Interned Strings Free memory 	7458816
Cached scripts 	150
Cached keys 	297
Max keys 	16229
OOM restarts 	0
Hash keys restarts 	0
Manual restarts 	0
Directive	Local Value	Master Value
opcache.blacklist_filename	no value	no value
opcache.consistency_checks	0	0
opcache.dups_fix	Off	Off
opcache.enable	On	On
opcache.enable_cli	Off	Off
opcache.enable_file_override	Off	Off
opcache.error_log	no value	no value
opcache.file_cache	no value	no value
opcache.file_cache_consistency_checks	1	1
opcache.file_cache_only	0	0
opcache.file_update_protection	2	2
opcache.force_restart_timeout	180	180
opcache.huge_code_pages	Off	Off
opcache.inherited_hack	On	On
opcache.interned_strings_buffer	8	8
opcache.lockfile_path	/tmp	/tmp
opcache.log_verbosity_level	1	1
opcache.max_accelerated_files	10000	10000
opcache.max_file_size	0	0
opcache.max_wasted_percentage	5	5
opcache.memory_consumption	128	128
opcache.opt_debug_level	0	0
opcache.optimization_level	0x7FFFBFFF	0x7FFFBFFF
opcache.preferred_memory_model	no value	no value
opcache.protect_memory	0	0
opcache.restrict_api	no value	no value
opcache.revalidate_freq	2	2
opcache.revalidate_path	Off	Off
opcache.save_comments	1	1
opcache.use_cwd	On	On
opcache.validate_permission	Off	Off
opcache.validate_root	Off	Off
opcache.validate_timestamps	On	On
Hast du eine Idee, woran es liegen könnte? Bin leider nicht so der Experte.

Danke & Grüsse
meyomey

Gert
Posts: 1242
Joined: Sun 18. Nov 2012, 14:18

Re: OPCache Warnmeldungen

Post by Gert » Wed 19. Jun 2019, 20:14

Hallo,

OPcache scheint mit neuen php-Versionen bzw. Konfigurationen zum Problemfall zu werden :shock:

Kannst Du mal was testen?

1. die if-Abfrage weglassen (so wie vorher), einfach nur: ini_set('opcache.enable', 0);

2. Zeile wie folgt ändern: if(function_exists('opcache_get_status'))ini_set('opcache.enable', 0);

Hat denn die Notice im Error.log irgendwelche Auswirkungen auf die Funktion der Seite? Notices kann man ja eigentlich ignorieren,

Gert
Gert Ebersbach | CMSimple | Templates - Plugins - Services

Gert
Posts: 1242
Joined: Sun 18. Nov 2012, 14:18

Re: OPCache Warnmeldungen

Post by Gert » Thu 20. Jun 2019, 00:06

Hallo,

der Grund für die neue Version waren ja Probleme mit der Deaktivierung von OPcache auf 2 Kundenservern, nach Umschaltung auf php 7.2.x.

Die Lösung hatte aber am Ende wohl nur den Effekt, dass der OPcache einfach nicht abgeschaltet wurde :oops:

Wenn also die Abschaltung des OPcache Probleme verursacht, bleibt erstmal auf die schnelle nur, ihn entsprechend zu konfigurieren. Der folgende Code prüft, ob OPcache aktiv ist und sollte dafür sorgen, dass IMMER nachgeschaut wird, ob es eine neue Version einer Datei gibt, bevor diese aus dem Cache geladen wird:

Code: Select all

if(function_exists('opcache_get_status') && opcache_get_status(true)['opcache_enabled'] == 1)
{
ini_set('opcache.validate_timestamps', 1);
ini_set('opcache.revalidate_freq', 0);
}
Einfach anstelle der Zeile 40:

if(function_exists('opcache_get_status') && opcache_get_status(true)[0] == 1)ini_set('opcache.enable', 0);

in die cms.php einfügen, also die Zeile überschreiben.

Auf den 2 "Problemservern" funktioniert es - kannst Du das mal auf Deinem Server testen?

Gert
Gert Ebersbach | CMSimple | Templates - Plugins - Services

meyomey
Posts: 16
Joined: Tue 17. May 2016, 11:52

Re: OPCache Warnmeldungen

Post by meyomey » Thu 20. Jun 2019, 19:52

Hallo Gert,

nach Änderung der cms.php bekomme ich keine Warnmeldungen mehr. Alles gut jetzt.
Ich hatte die Warnmeldungen nur zufällig entdeckt. Meine Seite funktionierte auch vorher ohne Probleme. :D

Post Reply