Zainstalowałem MAMP na nowym Macbooku z PHP 5.5.3.
Załaduj ponownie i odśwież nic. Wciąż nic. Szukaj w Google przez kilka minut, próbując dowiedzieć się, co jest nie tak, wróć i odśwież. To działa. Co za cholera?
Wszedłem do php.ini i wyłączyłem wszystkie nowe OPcache i ustawiłem domyślny czas pamięci podręcznej na 0. Dodano nagłówki do dokumentu, aby wymusić brak buforowania. Wciąż ten sam problem. Co tu się dzieje?
Karta sieci pokazuje żądanie HTTP 200, więc każdy nowy kod HTML w index.php
pliku renderuje się dobrze, ale nowe PHP, które musi zostać wyrenderowane przez serwer, jest opóźnione i nie jest renderowane, dopóki nie minie pewien z góry określony zestaw czasu, którego nie wiem jak zmienić. Co się dzieje?
Sprawdziłem to również w Safari, więc jest to zdecydowanie serwer, który powstrzymuje renderowanie pliku.
Ciekawostka jest jednak to, że jeśli wejdę do MAMP i zmienię wersję PHP na starszą (PHP 5.2 lub coś podobnego), będzie renderować się normalnie, bez "problemów z buforowaniem". Przełącz się na PHP 5.5 i zawiesza się. W preferencjach MAMP opcje buforowania dla 5.5 nawet nie istnieją i są automatycznie wyłączane.
Odpowiedzi:
Wyłącz OPCache
MAMP teraz domyślnie włącza OPCache, możesz go wyłączyć edytując plik php.ini. Upewnij się, że edytujesz poprawny plik php.ini.
Sam miałem ten sam problem. MAMP z PHP w wersji 5.5.3 domyślnie uruchamia OPcache, ale nie można go wyłączyć w GUI, tak jak w przypadku starszej wersji PHP 5.2.17. Musisz ręcznie zakomentować wszystkie wiersze OPcache na końcu pliku php.ini (MAMP / bin / php / [wersja] /conf/php.ini) i upewnić się, że zatrzymałeś i uruchomiono serwery, aby zmiany zostały wprowadzone efekt.
Zaktualizowałem URI, zmiany mogą być odzwierciedlone przez zmianę / conf / w folderze php, ale wygląda na to, że MAMP zignoruje je po ponownym uruchomieniu .
źródło
php.ini
plik, który chcesz edytować, znajduje się w / bin, a nie w / conf. Moja pełna ścieżka była/Applications/MAMP/bin/php/php5.5.3/conf/php.ini
.Dodałem opcache_reset (); w moim głównym PHP, aby zatrzymać buforowanie.
Usunięcie go z niego
php5.5.3/conf/php.ini
nic nie dało.Edytować
Okazuje się, że istnieje również plik
/Applications/MAMP/bin/php/php5.5.3/conf/php.ini
. Działa, jeśli to skomentuję.źródło
/Applications/MAMP/bin/php/php5.5.3/conf/php.ini
nic nie robi, ale dodawanieopcache_reset();
doindex.php
działało.1) w /Applications/MAMP/bin/php/php5.5.3/conf/php.ini
2) ustaw opcache.revalidate_freq = 0
3) zrestartuj MAMP
źródło
Tak długo zajęło mi zrozumienie, że był to problem z MAMP! Dlaczego OPcache miałoby być domyślnie włączone - i wymagałoby wyłączenia php.ini majsterkowania - w aplikacji, która ma być używana do testowania stron internetowych? W każdym razie przeczytałem cały ten wątek i wypróbowałem różne rozwiązania.
Oto moje notatki na temat działania każdego rozwiązania i rozważania dotyczące wyboru rozwiązania.
Każde rozwiązanie działa samodzielnie; nie ma potrzeby redundancji.
Rozwiązanie kodu strony internetowej
opcache_reset ();
Rozwiązania w zakresie konfiguracji serwerów
Ważne: użyj
php.ini
pliku w,/Applications/MAMP/bin/php/php5.5.3/conf/php.ini
a nie w/Applications/MAMP/conf/php5.5.3/php.ini
. Dostosuj odpowiednio, jeśli używasz innej wersji PHP.enable = 0
[OPcache]
wphp.ini
.opcache.revalidate_freq = 0
opcache.revalidate_freq
pod[OPcache]
wphp.ini
.Komentowanie [OPcache]
[OPcache]
sekcję wphp.ini
.Rozważania
Wybierz rozwiązanie kodu strony internetowej, jeśli:
Wybierz rozwiązanie konfiguracji serwera, jeśli:
Osobiście wolę,
enable=0
ponieważ jest to dla mnie najprostsze rozwiązanie i domyślnie potrzebuję wyłączonego buforowania.Bibliografia
źródło
Wygląda na to, że w końcu jest to opcja GUI.
MAMP 3.0.7.2 for Mac OS X
.źródło
Bolesne było spędzanie około godziny na próbach ustalenia, co to może być.
Właśnie dodałem to na końcu kodu i zrestartowałem MAMP.
źródło
Edytuj „/Applications/MAMP/conf/php5.5.3/php.ini”, wyszukaj [OPcache] i dodaj ten kod bezpośrednio pod nim:
Spowoduje to wyłączenie opcache w przypadku używania PHP na serwerze MAMP.
źródło
O rany, cieszę się, że znalazłem ten wątek! Wyrywałem sobie włosy! Właśnie wczoraj zaktualizowałem MAMP i nie zauważyłem tego problemu z buforowaniem do dzisiaj podczas pracy nad projektem. Myślałem, że tracę rozum. Właśnie zmieniłem „/Applications/MAMP/conf/php5.5.3/php.ini” na samym dole pliku opcache.enable = 0
źródło
Jest to również aktualne w wersji MAMP dla systemu Windows.
Jest wymieniony na samym dole pliku.
Inny problem, który znalazłem, dotyczył QNAP NAS TS-431. To buforowanie jest również włączone, a jeśli pracujesz z dynamicznie zmieniającymi się plikami lub próbujesz na nich rozwijać, będziesz wyrywać sobie włosy. Zgodnie z innymi komentarzami, po prostu to skomentuj. Ustawienie znajduje się w:
Ponownie znajdziesz ustawienia na dole pliku.
źródło