Ich habe so lange gebraucht, um herauszufinden, dass es ein MAMP-Problem war! Warum sollte OPcache in einer App, die zum Testen von Websites verwendet werden soll, standardmäßig aktiviert sein - und zum Deaktivieren das Basteln von php.ini erfordern? Wie auch immer, ich habe diesen ganzen Thread durchgelesen und die verschiedenen Lösungen ausprobiert.
Hier sind meine Notizen zur Funktionsweise der einzelnen Lösungen und Überlegungen zur Auswahl einer Lösung.
Jede Lösung funktioniert für sich. Keine Notwendigkeit für Redundanz.
Webseiten-Code-Lösung
opcache_reset ();
<?php opcache_reset(); ?>
- Muss im Webseitencode hinzugefügt werden.
- Erzwingt das erneute Laden aller Skripte.
- Funktioniert ohne Neustart des MAMP-Servers.
Serverkonfigurationslösungen
Wichtig: Verwenden Sie die php.ini
Datei in /Applications/MAMP/bin/php/php5.5.3/conf/php.ini
und nicht in
/Applications/MAMP/conf/php5.5.3/php.ini
. Passen Sie dies entsprechend an, wenn Sie eine andere Version von PHP verwenden.
enable = 0
[OPcache]
zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
enable=0
- Muss unter
[OPcache]
in hinzugefügt werden php.ini
.
- Deaktiviert OPcache.
- Erfordert einen Neustart des MAMP-Servers.
opcache.revalidate_freq = 0
[OPcache]
zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=0
opcache.fast_shutdown=1
opcache.enable_cli=1
- Ändern Sie
opcache.revalidate_freq
unter [OPcache]
in php.ini
.
- Lässt OPcache alle 0 Sekunden statt alle 60 Sekunden nach Updates suchen.
- Erfordert einen Neustart des MAMP-Servers.
Auskommentieren [OPcache]
;[OPcache]
;zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
;opcache.memory_consumption=128
;opcache.interned_strings_buffer=8
;opcache.max_accelerated_files=4000
;opcache.revalidate_freq=60
;opcache.fast_shutdown=1
;opcache.enable_cli=1
- Kommentieren Sie den gesamten
[OPcache]
Abschnitt in php.ini
.
- Entfernt OPcache vom PHP-Server.
- Erfordert einen Neustart des MAMP-Servers.
Überlegungen
Wählen Sie die Webseitencode-Lösung, wenn:
- Sie müssen nur die Skriptaktualisierung für ein bestimmtes Projekt erzwingen
- Sie möchten den MAMP-Server nicht neu starten
- Sie möchten die php.ini nicht bearbeiten
Wählen Sie eine Serverkonfigurationslösung, wenn:
- Sie möchten das Caching standardmäßig deaktivieren, anstatt es in jedem Projekt ausführen zu müssen
- Sie sind mit der Bearbeitung von php.ini vertraut
Ich persönlich bevorzuge es, enable=0
da es die einfachste Lösung für mich ist und das Caching standardmäßig deaktiviert ist.
Verweise