Всем привет! Объясните, что за странность. На хостинге создал только одну страницу - index.php. Пишу в ней: PHP: echo 'Hello, world!'; Сообщение выводится. Потом меняю текст на: PHP: echo 'Goodbye, world!'; Обновляю страницу, а текст прежний. Открываю в другом браузере текст тоже прежний. Но через какое-то время текст меняется. Кэширование отключал и htaccess и в самом файле, но безрезультатно. С чем связана эта задержка? Может быть Мир не хочет со мной прощаться???
Для начала нужно узнать откуда ноги растут. Покажи себе phpinfo() и посмотри секцию opcache например.
Попробуй в начале файла поставить opcache_reset(); Но сразу предупреждаю - это костыль, а не решение. И в продакшен так делать не надо. --- Добавлено --- А еще странно, что ты кодишь в хостинг, а не в локальный сервер.
Да я не кодил. Я только купил его. Кое-что проверял и заметил , что обновление запаздывает. --- Добавлено --- Да. Я включу, конечно. Я так понял, что opcache повышает производительность?
opcache хранит в памяти уже скопилированные php-скрипты. В итоге, при вызове php, система не тратит время на интерпретацию и перелинковку. Просто сразу подгружается готовый к исполнению байт-код. В итоге расходы памяти и времени снижаются многократно. Другое дело, что по умолчанию, опкэш не должен зажевывать страницы так сильно. По умолчанию у него инвалидация скриптов стоит с нулевой задержкой. То есть он при каждом вызове должен проверять каждый файлик на предмет совпадения его last modified с тем, которое помнит сам. Если они не совпадают, значит файлик был изменен, и, значит, опкэш его должен перекомпилировать заново. У тебя же в настройках допустимый интервал инвалидации выставлен отличный от нуля. То есть поводом для рекомпиляции служит не само изменение даты модификации, а определенный интервал между этими датами. Опять же на продакшене это, в принципе, ок. Для хайлоада сколько-то процессорного времени да сэкономит.