Остановить кэширование для PHP 5.5.3 в MAMP


установлен MAMP на новый Macbook с PHP 5.5.3.

перезагрузить и обновить ничего не делать. По-прежнему ничего. Google вокруг в течение нескольких минут, пытаясь выяснить, что не так, вернуться и обновить. Это работает. Какого черта?

Я пошел в php.ini и отключил все новые OPcache и установил время кэша по умолчанию в 0. Добавлены заголовки к документу, чтобы принудительно не кэшировать. Все та же проблема. Какого черта здесь происходит?

на вкладке Сеть отображается HTTP 200 запрос, так что любой новый HTML в index.php файл отображается нормально, но новый PHP, который должен быть отображен сервером, задерживается и не отображается до тех пор, пока не пройдет некоторый заданный набор времени, который я не знаю, как изменить. Что происходит?

Я тоже проверил это в Safari, поэтому это определенно серверная вещь, которая удерживает файл от рендеринга.

интересный факт, хотя, если я пойду в MAMP и изменю версию PHP на старую (PHP 5.2 или что-то еще), это будет визуализация обычно, без "проблем с кэшированием". Переключитесь на PHP 5.5 и он зависает. В настройках MAMP параметры кэширования для 5.5 даже не существуют и автоматически отключаются.

9 121

9 ответов:

Отключить OPCache

MAMP теперь включает OPCache по умолчанию, вы можете отключить его путем редактирования php.ini-файл. Убедитесь, что вы редактируете правильный php.Ини.

Я сам столкнулся с той же проблемой. MAMP с PHP версии 5.5.3 работает OPcache по умолчанию, но вы не можете отключить его в графическом интерфейсе, как вы можете с более старой версии PHP 5.2.17. Вы должны вручную закомментировать все строки OPcache в конце php.ini-файл (MAMP/bin/php/[версия]/conf / php.ini) и обязательно остановите и запустите серверы, чтобы изменения вступили в силу.

я обновил URI, изменения могут быть отражающими, также изменив /conf / в папке php, но, похоже, MAMP будет игнорировать их после перезагрузки.

добавил opcache_reset (); в моем основном PHP, чтобы остановить это кэширование.

удаление его из php5.5.3/conf/php.ini ничего не сделал для меня.

Edit

оказывается там тоже есть /Applications/MAMP/bin/php/php5.5.3/conf/php.ini. Оно работает, если я прокомментирую это там.

1) in /Applications/MAMP/bin/php/php5.5.3/conf/php.ini
2) Установите opcache.revalidate_freq=0
3) перезапустить MAMP

мне потребовалось так много времени, чтобы понять, что это была проблема с МАМП! Почему OPcache будет включен по умолчанию - и требует php.ini tinkering для отключения-- в приложении, которое должно использоваться для тестирования веб-сайтов? В любом случае, я прочитал всю эту тему и попробовал различные решения.

вот мои заметки о том, как работает каждое решение и соображения для выбора решения.

каждое решение работает само по себе; нет необходимости избыточность.


решение кода веб-страницы

opcache_reset ();

<?php opcache_reset(); ?>
  • должен быть добавлен в код веб-страницы.
  • принудительно перезагружает все скрипты.
  • работает без перезагрузки сервера MAMP.

решения конфигурации сервера

важно: использовать на /Applications/MAMP/bin/php/php5.5.3/conf/php.ini и не в /Applications/MAMP/conf/php5.5.3/php.ini. Отрегулируйте соответствующим образом, если вы используете другую версию в PHP.

включить=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
  • должен быть добавлен под [OPcache] на php.ini.
  • Отключает OPcache.
  • требуется перезапуск сервера MAMP.

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
  • изменить opcache.revalidate_freq под [OPcache] на php.ini.
  • заставляет OPcache проверять наличие обновлений каждые 0 секунд вместо каждых 60 секунд.
  • требуется сервер MAMP перезапуск.

комментируя [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
  • закомментировать весь на php.ini.
  • удаляет OPcache с сервера PHP.
  • требуется перезапуск сервера MAMP.

соображения

выберите решение кода веб-страницы, если:

  • вам просто нужно заставить скрипт обновляться для конкретного проекта
  • Вы же не хотите перезапустите сервер MAMP
  • вы не хотите редактировать php.ini

выберите решение конфигурации сервера, если:

  • вы хотите отключить кэширование по умолчанию вместо того, чтобы делать это в каждом проекте
  • вам удобно редактировать php.ini

лично я предпочитаю enable=0 так как это самое простое решение для меня, и мне нужно кэширование отключено по умолчанию.


ссылки

MAMP 3.0.7.2 for OS X

похоже, это наконец-то графическим интерфейсом пользователя. MAMP 3.0.7.2 for Mac OS X.

было больно тратить около 1 часа, пытаясь выяснить, что это может быть.

Я просто добавил Это в конце кода и перезапустить MAMP.

  opcache.revalidate_freq=0
  opcache_reset();

Edit " / Applications/MAMP/conf/php5.5.3 / php.ini", и найдите [OPcache] и добавьте этот код под ним напрямую:

opcache.enable=0

это отключит opcache при использовании PHP на сервере MAMP.

О Человек Я рад, что нашел эту нить! Я вытаскивал свои волосы! Я только что обновил MAMP вчера и не заметил эту проблему кэширования до сегодняшнего дня во время работы над проектом. Я думал, что схожу с ума. Я только что изменил " / Applications/MAMP/conf/php5.5.3 / php.ini " в самом низу файла opcache.включить=0

Это также актуально в версии MAMP для Windows.

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

он указан в самом низу файла.

другая проблема, которую я нашел, была на QNAP NAS TS-431. Это кэширование также включено, и если вы работаете с динамически изменяющимися файлами или пытаетесь разработать на нем, вы будете вырывать свои волосы. Согласно другим комментариям, просто прокомментируйте его. Настройка находится в:

Панель управления / приложения/веб-сервер / PHP.обслуживание ini.

еще раз, вы найдете в нижней части меню Файл.