Остановить кеширование для 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 даже не существуют и автоматически отключены.
Ответы
Ответ 1
Отключить 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 проигнорирует их после перезапуска.
Ответ 2
Я добавил opcache_reset(); в мой основной PHP, чтобы остановить это кеширование.
Удаление из php5.5.3/conf/php.ini
ничего не сделало для меня.
Edit
Оказывается, есть и /Applications/MAMP/bin/php/php5.5.3/conf/php.ini
. Это
работает, если я прокомментирую его там.
Ответ 3
1) в /Applications/MAMP/bin/php/php 5.5.3/conf/php.ini
2) set opcache.revalidate_freq = 0
3) перезапустить MAMP
Ответ 4
Мне так долго приходилось выяснять, что это проблема 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.
Enable = 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.
Вопросы
Выберите решение для кода веб-страницы, если:
- Вам просто нужно принудительно обновить script для конкретного проекта.
- Вы не хотите перезапускать сервер MAMP
- Вы не хотите редактировать php.ini
Выберите решение для конфигурации сервера, если:
- Вы хотите отключить кеширование по умолчанию вместо того, чтобы делать это в каждом проекте
- Вам удобно редактировать php.ini
Я лично предпочитаю enable=0
, поскольку это самое простое решение для меня, и мне нужно, чтобы кеширование было отключено по умолчанию.
Ссылки
Ответ 5
![MAMP 3.0.7.2 for OS X]()
Похоже, что это, наконец, опция GUI. MAMP 3.0.7.2 for Mac OS X
.
Ответ 6
Было больно тратить около 1 часа, пытаясь понять, что это может быть.
Я просто добавил это в конце кода и перезапустил MAMP.
opcache.revalidate_freq=0
opcache_reset();
Ответ 7
Измените "/Applications/MAMP/conf/php5.5.3/php.ini" и выполните поиск [OPcache] и сразу добавьте этот код:
opcache.enable=0
Это отключит opcache при использовании PHP на сервере MAMP.
Ответ 8
О, я рад, что нашел эту нить! Я вытаскивал волосы! Я только что обновил MAMP вчера и не заметил эту проблему кеширования до сегодняшнего дня, работая над проектом. Думал, что я схожу с ума.
Я просто изменил "/Applications/MAMP/conf/php5.5.3/php.ini" очень дно файла opcache.enable = 0
Ответ 9
Это также актуально в версии MAMP для Windows.
C:\MAMP\конф\php5.6.3\php.ini
Он указан в самой нижней части файла.
Другая проблема, которую я обнаружил, была в QNAP NAS TS-431. Это кэширование также включено, и если вы работаете с динамически меняющимися файлами или пытаетесь разработать на нем, вы будете вырывать ваши волосы. Как и другие комментарии, просто прокомментируйте это. Настройка находится в:
Панель управления/приложения/веб-сервер/поддержка PHP.ini.
Еще раз, вы найдете настройки в нижней части файла.