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 stimmt, kommt zurück und aktualisiert. Es klappt. Was zum Teufel?
Ich ging in die php.ini und deaktivierte den gesamten neuen OPcache und setzte 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 index.php
Datei einwandfrei wiedergegeben wird. Neues PHP, das vom Server gerendert werden muss, wird jedoch verzögert und erst wiedergegeben, wenn eine bestimmte Zeitspanne verstrichen ist, die ich nicht kenne wechseln. Was ist los?
Ich habe dies auch in Safari überprüft, so dass es definitiv eine Serversache ist, die das Rendern der Datei verhindert.
Interessante Tatsache, wenn ich in MAMP gehe und die PHP-Version auf die alte (PHP 5.2 oder so) ändere, wird sie normal gerendert, ohne "Caching-Probleme". Wechseln Sie zu PHP 5.5 und es legt auf. In den MAMP-Einstellungen sind die Caching-Optionen für 5.5 nicht einmal vorhanden und werden automatisch deaktiviert.
Antworten:
Deaktivieren Sie OPCache
MAMP aktiviert jetzt standardmäßig OPCache. Sie können es deaktivieren, indem Sie Ihre Datei php.ini bearbeiten. Stellen Sie sicher, dass Sie die richtige php.ini bearbeiten.
Ich hatte selbst das gleiche Problem. MAMP mit PHP Version 5.5.3 führt standardmäßig OPcache aus, aber Sie können es nicht wie mit der älteren PHP Version 5.2.17 in der GUI deaktivieren. Sie müssen alle OPcache-Zeilen am Ende der Datei php.ini (MAMP / bin / php / [version] /conf/php.ini) manuell auskommentieren und sicherstellen, dass die Server gestoppt und gestartet werden, damit die Änderungen vorgenommen werden können bewirken.
Ich habe den URI aktualisiert. Die Änderungen können reflektierend sein, indem Sie auch / conf / unter dem PHP-Ordner ändern, aber es scheint, dass MAMP diese nach dem Neustart ignoriert .
quelle
php.ini
zu bearbeitende Datei in / bin und nicht in / conf befindet. Mein voller Weg war/Applications/MAMP/bin/php/php5.5.3/conf/php.ini
.Ich habe opcache_reset () hinzugefügt . in meinem Haupt-PHP, 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 eine gibt
/Applications/MAMP/bin/php/php5.5.3/conf/php.ini
. Es funktioniert, wenn ich es da draußen kommentiere.quelle
/Applications/MAMP/bin/php/php5.5.3/conf/php.ini
macht nichts anderes, als das Hinzufügenopcache_reset();
zuindex.php
funktioniert.1) in /Applications/MAMP/bin/php/php5.5.3/conf/php.ini
2) opcache.revalidate_freq = 0 setzen
3) MAMP neu starten
quelle
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 ();
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]
in hinzugefügt werdenphp.ini
.opcache.revalidate_freq = 0
opcache.revalidate_freq
unter[OPcache]
inphp.ini
.Auskommentieren [OPcache]
[OPcache]
Abschnitt inphp.ini
.Überlegungen
Wählen Sie die Webseitencode-Lösung, wenn:
Wählen Sie eine Serverkonfigurationslösung, wenn:
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
quelle
Es sieht so aus, als wäre dies endlich eine GUI-Option.
MAMP 3.0.7.2 for Mac OS X
.quelle
Es war schmerzhaft, ungefähr eine Stunde damit zu verbringen, herauszufinden, was es sein könnte.
Ich habe dies gerade am Ende des Codes hinzugefügt und MAMP neu gestartet.
quelle
Bearbeiten Sie "/Applications/MAMP/conf/php5.5.3/php.ini", suchen Sie nach [OPcache] und fügen Sie diesen Code direkt hinzu:
Dadurch wird der Opcache deaktiviert, wenn PHP auf dem MAMP-Server verwendet wird.
quelle
Oh Mann, bin ich froh, dass ich diesen Thread gefunden habe! Ich zog mir die Haare aus! Ich habe gestern gerade MAMP aktualisiert und dieses Caching-Problem bis heute bei der Arbeit an einem Projekt nicht bemerkt. Ich dachte, ich würde den Verstand verlieren. Ich habe gerade "/Applications/MAMP/conf/php5.5.3/php.ini" ganz unten in der Datei opcache.enable = 0 geändert
quelle
Dies ist auch in der Windows-Version von MAMP aktuell.
Es ist ganz unten in der Datei aufgeführt.
Das andere Problem, das ich fand, 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 Ihnen die Haare herausgerissen. Wie in den anderen Kommentaren, kommentieren Sie es einfach aus. Die Einstellung befindet sich in:
Die Einstellungen finden Sie erneut am Ende der Datei.
quelle