Intereting Posts
Опубликовать на странице через Facebook API лучший способ определить, является ли URL-адрес изображением в PHP Codeigniter URI Class, как я могу использовать – дефис вместо _ подчеркивание? Laravel 5 PDOException не удалось найти драйвер Как вставить значения форм в базу данных mysql с помощью codeigniter как получить индекс родительского массива из многомерного массива в php Выделить сеанс по субдоменам в php Вычисление возраста с даты рождения в PHP Предпочтительный метод хранения массивов PHP (json_encode vs serialize) Невозможно подключиться к MySQL через PHP-скрипт при использовании mysqli или PDO, но mysql работает Минимизировать / сжать CSS с регулярным выражением? PHP htmlentities и сохранение данных в формате xml Могу ли я программно определить, анимирован ли PNG? Использование Blade (Laravel) правильно, имея проблемы с заголовком в собственном файле php генерирует все комбинации из заданного массива

Остановить кеширование для 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 даже не существуют и автоматически отключены.

Отключить OPCache

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

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

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

Я просто добавил это в конце кода и перезапустил 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 для Windows.

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

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

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

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

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