解决Warning: unlink(/storage/cache/cache.catalog.language.1556158719)

ytkah在调试opencart项目时提示Warning: unlink(/storage/cache/cache.catalog.language.1556158719): No such file or directory in /system/library/cache/file.php on line 68,出现这个问题首先确认是否权限不够,如果权限不够,可以把对应的文件夹设为777。以下是详细的解决方案

1.设置权限,/system/storage/和/image/设为755或777

chmod 0755 or 0777 system/storage/cache/
chmod 0755 or 0777 system/storage/download/
chmod 0755 or 0777 system/storage/logs/
chmod 0755 or 0777 system/storage/modification/
chmod 0755 or 0777 system/storage/session/
chmod 0755 or 0777 system/storage/upload/
chmod 0755 or 0777 system/storage/vendor/
chmod 0755 or 0777 image/
chmod 0755 or 0777 image/cache/
chmod 0755 or 0777 image/catalog/

2.清理缓存:extensions - modification - refresh dashboard - cache右上角 - refresh 浏览器清理缓存:ctrl + f5强制刷新 3.如果还是出现那个提示,可以试试更新/system/library/cache/file.php文件

<?php
namespace Cache;
class File {
    private $expire;

    public function __construct($expire = 3600) {
        $this->expire = $expire;

        $files = glob(DIR_CACHE . 'cache.*');

        if ($files) {
            foreach ($files as $file) {
                $filename = basename($file);

                $time = substr(strrchr($file, '.'), 1);

                if ($time < time()) {
                    $this->delete(substr($filename, 6, strrpos($filename, '.') - 6));
                }
            }
        }
    }

    public function get($key) {
        $files = glob(DIR_CACHE . 'cache.' . basename($key) . '.*');

        if ($files) {
            $handle = fopen($files[0], 'r');

            flock($handle, LOCK_SH);

            $size = filesize($files[0]);

            if ($size > 0) {
                $data = fread($handle, $size);
            } else {
                $data = '';
            }

            flock($handle, LOCK_UN);

            fclose($handle);

            return json_decode($data, true);
        }

        return false;
    }

    public function set($key, $value) {
        $this->delete($key);

        $file = DIR_CACHE . 'cache.' . basename($key) . '.' . (time() + $this->expire);

        $handle = fopen($file, 'w');

        flock($handle, LOCK_EX);

        fwrite($handle, json_encode($value));

        fflush($handle);

        flock($handle, LOCK_UN);

        fclose($handle);
    }

    public function delete($key) {
        $files = glob(DIR_CACHE . 'cache.' . basename($key) . '.*');

        if ($files) {
            foreach ($files as $file) {
                if (!@unlink($file)) {
                    clearstatcache(false, $file);
                }
            }
        }
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券