Мне потребовалось много времени, чтобы понять, что это проблема с 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
так как это самое простое решение для меня, и мне нужно, чтобы кеширование было отключено по умолчанию.
Ссылки