За последние 24 часа нас посетили 18852 программиста и 1628 роботов. Сейчас ищут 945 программистов ...

Не обновляется контент

Тема в разделе "PHP для новичков", создана пользователем Sergey_Tsarev, 10 фев 2017.

  1. Sergey_Tsarev

    Sergey_Tsarev Активный пользователь

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    Всем привет!
    Объясните, что за странность. На хостинге создал только одну страницу - index.php. Пишу в ней:
    PHP:
    1. echo 'Hello, world!';
    Сообщение выводится.
    Потом меняю текст на:
    PHP:
    1. echo 'Goodbye, world!';
    Обновляю страницу, а текст прежний. Открываю в другом браузере текст тоже прежний. Но через какое-то время текст меняется. Кэширование отключал и htaccess и в самом файле, но безрезультатно.
    С чем связана эта задержка? Может быть Мир не хочет со мной прощаться???
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Может быть связано с кэшированием опкода. Может быть связано с кэшированием прокси.
     
  3. Sergey_Tsarev

    Sergey_Tsarev Активный пользователь

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    @Ganzal, а как это можно исправить?
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Для начала нужно узнать откуда ноги растут. Покажи себе phpinfo() и посмотри секцию opcache например.
     
    Sergey_Tsarev нравится это.
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Попробуй в начале файла поставить

    opcache_reset();

    Но сразу предупреждаю - это костыль, а не решение. И в продакшен так делать не надо.
    --- Добавлено ---
    А еще странно, что ты кодишь в хостинг, а не в локальный сервер.
     
    Sergey_Tsarev нравится это.
  6. Sergey_Tsarev

    Sergey_Tsarev Активный пользователь

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    Спасибо. Отключил opcache в php.ini и стало все работать.
     
  7. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    На продакшене его, все же, лучше включить потом.
     
  8. Sergey_Tsarev

    Sergey_Tsarev Активный пользователь

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    Да я не кодил. Я только купил его. Кое-что проверял и заметил , что обновление запаздывает.
    --- Добавлено ---
    Да. Я включу, конечно. Я так понял, что opcache повышает производительность?
     
  9. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    opcache хранит в памяти уже скопилированные php-скрипты. В итоге, при вызове php, система не тратит время на интерпретацию и перелинковку. Просто сразу подгружается готовый к исполнению байт-код. В итоге расходы памяти и времени снижаются многократно.

    Другое дело, что по умолчанию, опкэш не должен зажевывать страницы так сильно. По умолчанию у него инвалидация скриптов стоит с нулевой задержкой. То есть он при каждом вызове должен проверять каждый файлик на предмет совпадения его last modified с тем, которое помнит сам. Если они не совпадают, значит файлик был изменен, и, значит, опкэш его должен перекомпилировать заново. У тебя же в настройках допустимый интервал инвалидации выставлен отличный от нуля. То есть поводом для рекомпиляции служит не само изменение даты модификации, а определенный интервал между этими датами.

    Опять же на продакшене это, в принципе, ок. Для хайлоада сколько-то процессорного времени да сэкономит.
     
    Sergey_Tsarev нравится это.