Хостинг. кеширование ФС сервера

tekhno-dom.ru
4 года
0

Довольно часто возникают ошибки вида
<b>Warning</b>: unlink(/home/----l/www/system/storage/cache/cache.product.seopath.1513341055): No such file or directory in <b>/home/----/www/system/library/cache/file.php</b> on line <b>68</b>
фрагмент кода:

public function delete($key) {
                $files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*');

                if ($files) {
                        foreach ($files as $file) {
                                if (file_exists($file)) {
это стр.68 ->         unlink($file);
                                }
                        }
                }
        }


умные люди в интернете говорят что это изза хостинга
Суть в чем... скрипт кеша делает проверку
- Есть ли такой файл кеша
ФС хостера бодро рапортует (беря данные из своего кеша)
- Да есть!
Скрипт
- Удаляю
ФС хостера
- Я обманула: нету его давно уже, я "думала" он есть

Т е не правильно настроено кеширование ФС сервера, это баян у хостеров уже. Пользователи обращаются в тех. поддержку хостера и они исправляют.

opencartforum.com/topic/64095-postoyannye-oshibki-pomogite-reshit-problemu/

rudenko
4 года
2

1. Попробуйте добавить вызов clearstatcache() после конструкции if ($files) php.net/manual/ru/function.clearstatcache.php
2. file_exists использовать с unlink неправильно, так как в случае, если это директория то оно вернет true, а unlink работает только с файлами. Необходимо использовать is_file()

5am
10 месяцев
0

Спасибо большое rudenko, помогло, вроде не появляется, многократно обновил страницу