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

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

Перезагрузка и обновление ничего не делают. Еще ничего. Гугл в течение нескольких минут пытается выяснить, что не так, вернуться и обновить. Оно работает. Какого черта?

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

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

Я также проверил это в Safari, так что это определенно сервер, который удерживает файл от рендеринга.

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

11 ответов

Решение

Отключить OPCache

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 будет игнорировать их после перезапуска.

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

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

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

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

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

Мне потребовалось так много времени, чтобы понять, что это была проблема MAMP! Почему 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,
  • Отключает 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
  • Закомментируйте весь [OPcache] раздел в php.ini,
  • Удаляет OPcache с сервера PHP.
  • Требуется перезагрузка сервера MAMP.

Соображения

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

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

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

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

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


Рекомендации

MAMP 3.0.7.2 для OS X

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

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

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

  opcache.revalidate_freq=0
  opcache_reset();

Отредактируйте "/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.enable=0

Откройте панель Mamp в правом верхнем углу, нажмите «Настройки», откроется всплывающее окно, есть возможность «отключить» кеш php. Он работает как шарм, нет необходимости изменять какие-либо другие файлы.

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

C: \ MAMP \ конф \php5.6.3\php.ini

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

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

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

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

Для тех, кто использует MAMP 6.xвы должны отключить этот параметр в пользовательском интерфейсе, иначе MAMP перезапишет ваши файлы PHP при следующем перезапуске apache.

Настройка находится в PHPнастройка как показано здесь:

Изменить значение по умолчанию OPcacheнастройка на offи нажмите Save. После сохранения перезапустите службу Apache.

Другие вопросы по тегам