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