Ребята, подскажите, что ему не нравиться? Все время выбивает ошибку. 2018-04-10 0:37:24 - PHP Warning: unlink(.../system/storage/cache/cache.https_product.seopath.1523313444): No such file or directory in .../system/library/cache/file.php on line 68 2018-04-10 0:37:37 - PHP Warning: fopen(.../system/storage/cache/cache.https_product.seopath.1523313457): failed to open stream: No such file or directory in .../system/library/cache/file.php on line 28 2018-04-10 0:37:37 - PHP Warning: flock() expects parameter 1 to be resource, boolean given in .../system/library/cache/file.php on line 30 2018-04-10 0:37:37 - PHP Warning: fread() expects parameter 1 to be resource, boolean given in .../system/library/cache/file.php on line 32 2018-04-10 0:37:37 - PHP Warning: flock() expects parameter 1 to be resource, boolean given in .../system/library/cache/file.php on line 34 2018-04-10 0:37:37 - PHP Warning: fclose() expects parameter 1 to be resource, boolean given in .../system/library/cache/file.php on line 36 2018-04-10 0:37:52 - PHP Warning: unlink(.../system/storage/cache/cache.https_product.seopath.1523313472): No such file or directory in .../system/library/cache/file.php on line 68
Все нравится ))) Сказали ему что чел за углом сид и будет там час сидеть. Пошел его гасить, а его уже и след простыл
Не переживайте. Иногда такое бывает. Не обращайте внимание. Все происходит именно так, как описал @karpov
аналогичная проблема сразу на 2 сайтах. Один на версии 1.5.5.*, другой на 2.1.2.0 Код: Warning: fopen(.../system/storage/cache/cache.product.bestseller.4.0.1.5.1525125942): failed to open stream: Disk quota exceeded in .../system/library/cache/file.php on line 47 Warning: flock() expects parameter 1 to be resource, boolean given in .../system/library/cache/file.php on line 48 Warning: fwrite() expects parameter 1 to be resource, boolean given in .../system/library/cache/file.php on line 49 Warning: fflush() expects parameter 1 to be resource, boolean given in .../system/library/cache/file.php on line 50 Warning: flock() expects parameter 1 to be resource, boolean given in .../system/library/cache/file.php on line 51 Warning: fclose() expects parameter 1 to be resource, boolean given in .../system/library/cache/file.php on line 52 и собственно код: Код: public function set($key, $value) { $this->delete($key); $file = DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.' . (time() + $this->expire); $handle = fopen($file, 'w'); 48 flock($handle, LOCK_EX); 49 fwrite($handle, json_encode($value)); 50 fflush($handle); 51 flock($handle, LOCK_UN); 52 fclose($handle); }
Аналогичная, но не таже самая. У вас на диске кончилось место. Об этом прямо на инглише в ошибке вам и написано.
Здравствуйте! Помогите, пожалуйста, за деревянные исправить ошибки кэширования. На сайте http://animecards.ru, развернул чистую CMS OpenCart Version 4.0.1.1 (rs.1) без каких либо расширений. Проблема - не применяются внесенные данные стилей: http://animecards.ru/catalog/view/stylesheet/stylesheet.css цвет меню с синего на желтый поменял, в файле stylesheet.css новые цвета сохраняются, а на фронте нет, старые синие. /* menu */ #menu { background-color: #FCCB51; background-image: linear-gradient(to bottom, #FCCB51, #FCCB51); background-repeat: repeat-x; border: 1px solid #FCCB51; border-color: #FCCB51 #FCCB51 #e3a405; min-height: 40px; border-radius: 4px; } Сбросил кэш в cms (В настройках разработчика скинул кэш Темы. Отключил SASS). Скинул кэш браузера, проверял инкогнито. Отключил php кэш для сайта. Безрезультатно. Журнал ошибок: 2022-10-08 08:59:14 - PHP Warning: Cannot modify header information - headers already sent in /var/www/u0914484/data/www/animecards.ru/bafubfyebf83BF4fbhF34/controller/startup/session.php on line 30 2022-10-12 22:39:18 - PHP Warning: unlink(/var/www/u0914484/data/www/storage/cache/cache.store.1665617878): No such file or directory File: /var/www/u0914484/data/www/animecards.ru/system/library/cache/file.php Line: 49 2022-10-12 22:39:18 - PHP Warning: mkdir(): File exists File: /var/www/u0914484/data/www/storage/vendor/twig/twig/src/Cache/FilesystemCache.php Line: 50 2022-10-27 16:20:08 - Exception: Error: Could not load cache adaptor file cache! in /var/www/u0914484/data/www/animecards.ru/system/library/cache.php on line 30 2022-10-27 18:09:05 - PHP Warning: fopen(/var/www/u0914484/data/www/animecards.ru/catalog/view/stylesheet/stylesheet.css): Failed to open stream: Permission denied in /var/www/u0914484/data/www/animecards.ru/catalog/controller/startup/sass.php on line 20 2022-10-27 18:09:05 - TypeError: flock(): Argument #1 ($stream) must be of type resource, bool given in /var/www/u0914484/data/www/animecards.ru/catalog/controller/startup/sass.php on line 22
У регру бывает включено кеширование и изменения в файлах не видно сразу. Бывают проблемы с правами итд. Ну и брать версию опенкарта по причине "то что она новее всех" не лучший вариант для новичка. Нужно понимать зачем это Вам.
В день бывает по несколько подобных сообщений: В интеренетах нашёл такое решение - в строке 68 перед unlink($file); поставить символ @ чтобы получилось @unlink($file); Правильное ли это решение?
Смотря с какой стороны посмотреть. Одеть непрозрачные очки и не смотреть, вот что это значит. Сама проблема (да по сути это не проблема) не уйдет. Но если не хотите просто видеть, то можно и так.
в тройке такое решение Код: foreach ($files as $file) { if (!@unlink($file)) { clearstatcache(false, $file); } }
Как я понял из ответов, это не ошибка. И другого решения не предлагалось. Просто не хочется отключать журнал, но и бесполезными сообщениями его тоже заполнять не хотелось бы... А решение предложенное выше из той же серии или более правильное?
Кстати, ещё такое сообщение нарисовалось... 2022-11-24 23:05:04 - PHP Warning: flock() expects parameter 1 to be resource, boolean given in /system/library/cache/file.php on line 30 2022-11-24 23:05:04 - PHP Warning: fread() expects parameter 1 to be resource, boolean given in /system/library/cache/file.php on line 32 2022-11-24 23:05:04 - PHP Warning: flock() expects parameter 1 to be resource, boolean given in /system/library/cache/file.php on line 34 2022-11-24 23:05:04 - PHP Warning: fclose() expects parameter 1 to be resource, boolean given in /system/library/cache/file.php on line 36 Упомянутые строки: Код: flock($handle, LOCK_SH); $data = fread($handle, filesize($files[0])); flock($handle, LOCK_UN); fclose($handle); Спойлер: Полностью
а при чем здесь рут? это вообще никак не связано. Проблема бородатая и тянется с самых первых версий опенкарта. Как правильно было замечено, это не ошибка, на работоспособность сайта не влияет. Решение в тройке помогает, но все равно периодически видел в логах ошибки PHP Warning: flock() expects parameter 1 to be resource... корни те же самые
То же самое. Обидно, что сайт уже сделан и начал наполняться. Теперь, наверное, лучше снести все и начать заново на тройке. Кто ж знал...(
Я проблем с изменением не замечал. Но в любом случаи, неподготовленным "разработчикам" еще рано использовать OpenCart 4 для рабочего магазина.
Только для этой строки - PHP Warning: unlink(.../system/storage/cache/cache.https_product.seopath.1523313444): No such file or directory in .../system/library/cache/file.php on line 68 Подтверждаю, эти ошибки так остались.
PHP: <?phpnamespace Cache;class File { private $expire; public function __construct($expire = 3600) { $this->expire = $expire; // Очистка устаревших кэш-файлов при инициализации объекта $files = glob(DIR_CACHE . 'cache.*'); if ($files) { foreach ($files as $file) { $time = substr(strrchr($file, '.'), 1); // Если время истекло, удаляем файл if ($time < time() && file_exists($file)) { if (!@unlink($file)) { clearstatcache(false, $file); } } } } } public function get($key) { // Получение данных из кэша по ключу $safeKey = preg_replace('/[^A-Z0-9\._-]/i', '', $key); $files = glob(DIR_CACHE . 'cache.' . $safeKey . '.*'); if ($files) { // Чтение данных из файла $data = @file_get_contents($files[0]); // Если чтение не удалось, вернуть false if ($data === false) { // Записать ошибку в лог return false; } return json_decode($data, true); } return false; } public function set($key, $value) { // Установка данных в кэш $this->delete($key); $safeKey = preg_replace('/[^A-Z0-9\._-]/i', '', $key); $file = DIR_CACHE . 'cache.' . $safeKey . '.' . (time() + $this->expire); // Создание временного файла $tempFile = tempnam(DIR_CACHE, 'tmp_'); if ($tempFile === false) { // Записать ошибку в лог return false; } // Запись данных во временный файл if (file_put_contents($tempFile, json_encode($value), LOCK_EX) === false) { // Записать ошибку в лог return false; } // Переименование временного файла в кэш-файл if (!rename($tempFile, $file)) { // Записать ошибку в лог unlink($tempFile); return false; } return true; } public function delete($key) { // Удаление данных из кэша по ключу $safeKey = preg_replace('/[^A-Z0-9\._-]/i', '', $key); $files = glob(DIR_CACHE . 'cache.' . $safeKey . '.*'); if ($files) { foreach ($files as $file) { // Удаление файла, если он существует if (file_exists($file) && !@unlink($file)) { clearstatcache(false, $file); } } } }}