使用老数据库安装 typecho 后报各种错误的解决方案

使用老数据库安装 typecho 后报各种错误的解决方案

梦浪的小虾米
2021-09-29 / 3 评论 / 3,027 阅读 / 正在检测是否收录...

骚操作

博主喜欢折腾自己的服务器,每次折腾完后,都无法把服务器进行复原操作,导致 linux 环境出现各种各样的问题,没办法只好备份 typecho 数据库,然后重新安装系统,安装完后,安装 typecho 博客。然后 typecho 博客总是会出现各种各样的错误。

错误类型

例如:

  1. class '这里是某个名字' not found
  2. class '这里是某个名字' not exist

总之,就是各种提示找不到文件或者找不到类。

错误原因

因为我的 typecho 会安装很多的插件,然后我又不备份我的插件和主题,所以就导致了插件的主题找不到,那么就没有解决方案了吗?

答案是当然

如何解决

  1. 打开你的 typecho 数据库,找到 options 表
  2. 使用如下 sql 进行搜索 [本步骤不是必须] 我的表前缀是 typecho_ ,请自行修改成你的

    select * form typecho_options where name='plugins';

    然后把所得结果进行备份或者直接进行下一步

  3. 把 options 表的 name='plgins'; 的 value 变成 a:0:{} 注意:我的表前缀是 typecho_ ,请自行修改成你的

    UPDATE `typecho_options` SET `value` = 'a:0:{}' WHERE `name` = 'plugins'

搞定,收工。博客首页可以正常打开了。

 如果您想恢复自己以前的插件

对照着上面的第二步的操作所备份的字段进行查找自己的插件。如何查找?

例如我的 value :

a:2:{s:9:"activated";a:4:{s:7:"TeStore";a:1:{s:7:"handles";a:1:{s:21:"admin/menu.php:navBar";a:1:{i:0;a:2:{i:0;s:14:"TeStore_Plugin";i:1;s:6:"render";}}}}s:8:"AddTheme";a:1:{s:7:"handles";a:1:{s:21:"admin/menu.php:navBar";a:1:{i:0;a:2:{i:0;s:15:"AddTheme_Plugin";i:1;s:6:"render";}}}}s:6:"Spider";a:0:{}s:6:"Donate";a:1:{s:7:"handles";a:3:{s:24:"rootvip.cn.Donate:Donate";a:1:{i:0;a:2:{i:0;s:13:"Donate_Plugin";i:1;s:6:"render";}}s:21:"Widget_Archive:header";a:1:{i:0;a:2:{i:0;s:13:"Donate_Plugin";i:1;s:5:"style";}}s:21:"Widget_Archive:footer";a:1:{i:0;a:2:{i:0;s:13:"Donate_Plugin";i:1;s:2:"js";}}}}}s:7:"handles";a:4:{s:21:"admin/menu.php:navBar";a:2:{i:0;a:2:{i:0;s:14:"TeStore_Plugin";i:1;s:6:"render";}s:5:"0.001";a:2:{i:0;s:15:"AddTheme_Plugin";i:1;s:6:"render";}}s:24:"rootvip.cn.Donate:Donate";a:1:{i:0;a:2:{i:0;s:13:"Donate_Plugin";i:1;s:6:"render";}}s:21:"Widget_Archive:header";a:1:{i:0;a:2:{i:0;s:13:"Donate_Plugin";i:1;s:5:"style";}}s:21:"Widget_Archive:footer";a:1:{i:0;a:2:{i:0;s:13:"Donate_Plugin";i:1;s:2:"js";}}}}
  1. 打开 https://www.bejson.com/convert/deserialize/
  2. 在上面输入 对应的 value
  3. 复制得到 json 打开在线 json 工具(请自行搜索使用 json格式化工具)
  4. 然后 会得到如下格式:

    {
        "activated": {
            "TeStore": {
                "handles": {
                    "admin\/menu.php:navBar": [
                        ["TeStore_Plugin", "render"]
                    ]
                }
            },
            "AddTheme": {
                "handles": {
                    "admin\/menu.php:navBar": [
                        ["AddTheme_Plugin", "render"]
                    ]
                }
            },
            "Spider": [],
            "Donate": {
                "handles": {
                    "rootvip.cn.Donate:Donate": [
                        ["Donate_Plugin", "render"]
                    ],
                    "Widget_Archive:header": [
                        ["Donate_Plugin", "style"]
                    ],
                    "Widget_Archive:footer": [
                        ["Donate_Plugin", "js"]
                    ]
                }
            }
        },
        "handles": {
            "admin\/menu.php:navBar": {
                "0": ["TeStore_Plugin", "render"],
                "0.001": ["AddTheme_Plugin", "render"]
            },
            "rootvip.cn.Donate:Donate": [
                ["Donate_Plugin", "render"]
            ],
            "Widget_Archive:header": [
                ["Donate_Plugin", "style"]
            ],
            "Widget_Archive:footer": [
                ["Donate_Plugin", "js"]
            ]
        }
    }
  1. 查看 4 中的 activated 下面的东西就可以了,例如本文中包含的名字

    • TeStore
    • AddTheme
    • Donate
    • Spider 这个里面啥也没有,先忽略
  2. 打开你的 typecho 插件安装工具,搜索第 5 步中出现的字段名字

    例如: AddTheme 然后点击安装。 OK ,安装成功

End

OK, 真正的打完收工了

如果您对本文有任何的疑惑都可以评论哦,作者看到后就会回复了。希望能够帮到您。

1

评论 (3)

取消
  1. 头像
    小菜集
    Windows 10 · Google Chrome

    巧了 我的是所有插件启用或禁用提示无法启用/禁用错误,虽然功能正常使用,网络请求里看到是500错误,plugins被我清空后单独开启自带的helloword插件也是一样,找了一天原因没找到

    回复
  2. 头像
    清雨
    Windows 10 · Google Chrome

    最近遇到个很迷的问题:
    所有已启用的插件都提示“此插件文件已经损坏或者被不安全移除, 强烈建议你禁用它”
    而未启用的插件全显示空白信息,只有操作列有一个“即插即用”提示,然后全都没了。

    并且已启用的插件全部“半正常”工作,部分功能失效,一气之下把数据表给:
    UPDATE `typecho_options` SET `value` = '' WHERE `name` = 'plugins'

    然后报错整站打不开,根据报错信息找到博主这篇文章,把 plugins 插件列表重新初始化了。
    但是所有插件还是一样全部显示空白信息无法启用,不知楼主可遇到过此特殊情况?头都大了。

    回复
    1. 头像
      梦浪的小虾米 作者
      Windows 10 · Google Chrome
      @ 清雨

      update 重置的值不对。这样写UPDATE `typecho_options` SET `value` = 'a:0:{}' WHERE `name` = 'plugins'

      回复