web-dev-qa-db-ger.com

Stoppen Sie die Zwischenspeicherung für PHP 5.5.3 in MAMP

Installierte MAMP auf einem neuen Macbook mit PHP 5.5.3.

Neu laden und aktualisieren, nichts tun. Immer noch nichts. Google versucht ein paar Minuten lang herauszufinden, was nicht in Ordnung ist. Kommen Sie zurück und aktualisieren Sie sich. Es klappt. Was zum Teufel?

Ich ging in die php.ini und deaktivierte den gesamten neuen OPcache und stellte die Standard-Cache-Zeit auf 0. Dem Dokument wurden Header hinzugefügt, um kein Caching zu erzwingen. Immer noch das gleiche Problem. Was zum Teufel ist hier los?

Auf der Registerkarte "Netzwerk" wird eine HTTP 200-Anforderung angezeigt, sodass jeder neue HTML-Code in der Datei index.php In Ordnung gerendert wird. Das neue PHP, das vom Server gerendert werden muss, wird jedoch verzögert und erst nach einem festgelegten Satz gerendert Es vergeht eine Menge Zeit, die ich nicht ändern kann. Was ist los?

Ich habe dies auch in Safari überprüft, damit die Datei auf keinen Fall gerendert wird.

Interessante Tatsache ist jedoch, dass wenn ich in MAMP gehe und die PHP -Version auf die alte (PHP 5.2 oder so) ändere, diese normal und ohne "Caching-Probleme" gerendert wird. Wechseln Sie zu PHP 5.5 und es legt auf. In den MAMP-Einstellungen gibt es noch nicht einmal Caching-Optionen für 5.5, die automatisch deaktiviert werden.

123
Daron Spence

OPCache deaktivieren

MAMP aktiviert jetzt standardmäßig OPCache. Sie können es deaktivieren, indem Sie Ihre php.ini-Datei bearbeiten. Stellen Sie sicher, dass Sie die richtige php.ini bearbeiten.

Ich selbst hatte das gleiche Problem. MAMP mit PHP Version 5.5.3 führt standardmäßig OPcache aus, aber Sie können es nicht in der GUI ausschalten, wie Sie es mit der älteren PHP Version 5.2 können .17 Sie müssen alle OPcache-Zeilen am Ende der php.ini-Datei (MAMP/bin/php/[version] /conf/php.ini) manuell auskommentieren und sicherstellen, dass die Server für die Änderungen werden wirksam.

Ich habe die URI aktualisiert. Die Änderungen können sich auch in/conf/im PHP-Ordner widerspiegeln, aber es scheint, als würde MAMP diese nach dem Neustart ignorieren .

206
Jonathan Kaiser

Ich habe opcache_reset (); in mein main PHP hinzugefügt, um dieses Caching zu stoppen.

Das Entfernen von php5.5.3/conf/php.ini Hat nichts für mich getan.

Bearbeiten

Es stellt sich heraus, dass es auch einen /Applications/MAMP/bin/php/php5.5.3/conf/php.ini Gibt. Es funktioniert, wenn ich es dort auskommentiere.

39
Joeri

1) in /Applications/MAMP/bin/php/php5.5.3/conf/php.ini
2) setze opcache.revalidate_freq = 0
3) Starten Sie MAMP neu

26
Lagi

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 die Deaktivierung von php.ini erfordern? Jedenfalls habe ich diesen ganzen Thread durchgelesen und die verschiedenen Lösungen ausprobiert.

Hier sind meine Notizen zur Funktionsweise jeder Lösung und Überlegungen zur Auswahl einer Lösung.

Jede Lösung funktioniert für sich. Keine Notwendigkeit für Redundanz.


Webseitencode-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 Datei php.ini 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 an, wenn Sie eine andere PHP-Version 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 php.ini Hinzugefügt werden.
  • 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 von [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 Abschnitt [OPcache] In php.ini Aus.
  • Entfernt OPcache vom PHP Server.
  • Erfordert einen Neustart des MAMP-Servers.

Überlegungen

Wählen Sie die Webseitencode-Lösung aus, 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 können die php.ini problemlos bearbeiten

Ich persönlich bevorzuge enable=0, Da dies für mich die einfachste Lösung ist und ich das Caching standardmäßig deaktivieren muss.


Verweise

10
Feanne

MAMP 3.0.7.2 for OS X

Es sieht so aus, als wäre dies endlich eine GUI-Option. MAMP 3.0.7.2 for Mac OS X.

4
jibiel

Es war schmerzhaft, ungefähr eine Stunde zu verbringen, um herauszufinden, was es sein könnte.

Ich habe dies am Ende des Codes hinzugefügt und MAMP neu gestartet.

  opcache.revalidate_freq=0
  opcache_reset();
3
Huroman

Oh Mann, ich bin froh, dass ich diesen Thread gefunden habe! Ich zog mir die Haare aus! Ich habe gestern gerade ein Upgrade für MAMP durchgeführt und habe dieses Caching-Problem bis heute bei der Arbeit an einem Projekt nicht bemerkt. Ich dachte, ich verliere den Verstand. Ich habe gerade "/Applications/MAMP/conf/php5.5.3/php.ini" ganz unten in der Datei opcache.enable = 0 geändert

2
intheusa

Bearbeiten Sie "/Applications/MAMP/conf/php5.5.3/php.ini", suchen Sie nach [OPcache] und fügen Sie diesen Code direkt darunter hinzu:

opcache.enable=0

Dadurch wird der Opcache deaktiviert, wenn PHP auf dem MAMP-Server verwendet wird.

2
aakatheeri

Dies ist auch in der Windows-Version von MAMP aktuell.

C:\MAMP\conf\php5.6.3\php.ini

Es ist ganz unten in der Datei aufgeführt.

Das andere Problem, das ich gefunden habe, war auf einem QNAP NAS= TS-431. Dieses Caching ist ebenfalls aktiviert. Wenn Sie mit sich dynamisch ändernden Dateien arbeiten oder versuchen, darauf zu entwickeln, werden Sie Wie in den anderen Kommentaren erwähnt, kommentiere es einfach aus. Die Einstellung befindet sich in:

Systemsteuerung/Anwendungen/Webserver/PHP.ini-Wartung.

Wieder finden Sie die Einstellungen am Ende der Datei.

1
vr_driver