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


Установил MAMP на новый Macbook с PHP 5.5.3.

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

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

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

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

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

Author: tereško, 2013-09-29

9 answers

Отключить кэширование операций

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

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

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

 203
Author: Jonathan Kaiser, 2014-01-31 20:20:37

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

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

Редактировать

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

 39
Author: Joeri, 2013-10-19 01:32:21

1) в /Приложениях/MAMP/bin/php/php5.5.3/conf/php.ini
2) установите opcache.revalidate_freq=0
3) перезапустить MAMP

 26
Author: Lagi, 2013-11-28 03:19:30

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

Вот мои заметки о том, как работает каждое решение, и рекомендации по выбору решения.

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


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

Opcache_reset();

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

Решения по настройке сервера

Важно: Используйте файл php.ini в /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.
  • Отключает кэш операций.
  • Требуется перезапуск сервера 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
  • Прокомментируйте весь раздел [OPcache] в php.ini.
  • Удаляет кэш OPC из PHP сервер.
  • Требуется перезапуск сервера MAMP.

Соображения

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

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

Выберите решение для настройки сервера, если:

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

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


Ссылки

 10
Author: Feanne, 2014-08-02 04:09:19

MAMP 3.0.7.2 for OS X

Похоже, что это, наконец, опция графического интерфейса. MAMP 3.0.7.2 for Mac OS X.

 4
Author: jibiel, 2014-10-26 12:53:01

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

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

  opcache.revalidate_freq=0
  opcache_reset();
 3
Author: Huroman, 2013-12-15 19:10:28

Отредактируйте "/Приложения/MAMP/conf/php5.5.3/php.ini", найдите [OPCACHE] и добавьте этот код непосредственно под ним:

opcache.enable=0

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

 2
Author: aakatheeri, 2014-01-04 19:15:08

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

 2
Author: intheusa, 2014-01-20 21:27:24

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

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

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

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

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

Еще раз, вы найдете настройки в нижней части файла.

 1
Author: vr_driver, 2015-08-01 03:46:36