• 20201107


    这篇于TA人无意义,仅自己记录。

    因虚拟主机到期,故将原先bluehost的一个discuz6转到hostinger。

    操作步骤是:

    1、在后台将原数据用自带功能备份为sql,共生成了49个文件;并将原先所有文件打包下载到本地。

    2、通过主机功能将数据库备份到本地;

    3、将文件上传到新主机,并调整.htaccess文件

    4、将数据库恢复到新主机。

    此时,打开首页,出现很多问题,试了很多都没有发现原因:

    1、乱码

    2、无法登录

    3、点击帖子无法查看内容

    解决办法:

    于是本地搭建一套php5.3的环境进行调试;

    0、环境搭建绝对是有技术含量的,想到那些未参与和领导过软件项目,理论指导实际的学院派,公司招聘这类人时,面试应让他们搭建一套Web的运行时环境,PHP,Python,Js,Java,Go,.Net 都不限。能在一天内完成的,才能录用。

    1、乱码的原因:原先是mysql,现在是mariadb,原先判断数据库版本的代码,并未兼容mariadb

        if($this->version() > '4.1') {
            global $charset, $dbcharset;
            if(!$dbcharset && in_array(strtolower($charset), array('gbk', 'big5', 'utf-8'))) {
                $dbcharset = str_replace('-', '', $charset);
            }
    
            if($dbcharset) {
                @mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary", $this->link);
            }
    
            if($this->version() > '5.0.1') {
                @mysql_query("SET sql_mode=''", $this->link);
            }
        }

    这里可根据使用的数据库版本直接将版本判断的代码注释掉,即可解决乱码问题。

    2、无法登录的问题

    原先因为垃圾注册和尝试登录,开启了验证码。又按论坛提示,配置了密码提示问题。

    开始无法登录时,改了一处代码 == 改为了 !== 直接登录,忘了改回去,导致此处无法真正登录,总在输入验证码处循环。

    L:hack代码时,要记得特殊标记备注。操作完后要记得全局搜索标记,改回原代码。

    if($member['discuz_secques'] == $secques && !$seccodemiss) {
    }

    3、点击帖子无法查看内容

    这里debug拿出sql直接运行,发现是数据缺失的问题,可能是恢复数据时,超时中断了,以为执行完了。解决是:从备份中找出缺失的项,在本地恢复出一个完整的库,再用增量的办法补充到线上。

    正好旧帖子不操作了,所以此处影响不大。如果是线上,恢复数据一定是个头大的事情。

  • 相关阅读:
    MyBatis 学习记录3 MapperMethod类
    MyBatis 学习记录2 Mapper对象是如何生成的
    MyBatis 学习记录1 一个简单的demo
    hadoop学习记录1 初始hadoop
    Java枚举类的serialVersionUID
    docker学习记录1
    mysql utf8方式连接查看表数据乱码的问题
    在Spring中使用Redis Lua脚本批量删除缓存
    redis 批量删除键
    前后端分离跨域问题解决方案
  • 原文地址:https://www.cnblogs.com/likun/p/13939720.html
Copyright © 2020-2023  润新知