提起Web始终不能绕过一个语言,那就是PHP,而要说到PHP的Web框架,对于php开发工程师而言,ThinkPHP和Laravel应该都是必须掌握好的框架,甚至需要熟练乃至精通一个框架!
而下面本渣渣要记录的一个网页错误就是ThinkPHP框架的,严格意义上来说应该是数据库的错误处理,以下仅供参考,仅为记录学习!
某一个正常上线的网站突然之间首页,详情页均访问不了,后台进入同样也是一个提示报错:页面错误,请稍候再试!
身为技术渣,本渣渣是彻底蒙蔽了!!!
错误代码
代码语言:javascript复制[10501] PDOException in Connection.php line 390
SQLSTATE[HY000]: General error: 1030 Got error 28 from storage engine
$this->PDOStatement->execute();
// 调试结束
$this->debug(false, '', $master);
// 返回结果集
return $this->getResult($pdo, $procedure);
} catch (PDOException $e) {
if ($this->isBreak($e)) {
return $this->close()->query($sql, $bind, $master, $pdo);
}
throw new PDOException($e, $this->config, $this->getLastsql());
} catch (Throwable $e) {
if ($this->isBreak($e)) {
return $this->close()->query($sql, $bind, $master, $pdo);
}
throw $e;
} catch (Exception $e) {
if ($this->isBreak($e)) {
return $this->close()->query($sql, $bind, $master, $pdo);
}
请注意,这是最终显示出来的错误代码,这需要设置调试模式才能看到报错,这与Django框架类似,通过调试状态的下的错误代码来知晓错误的具体情况及代码块!
ThinkPHP框架调试状态
已经上线正常的网站通常都会关闭调试状态,把报错设定为一个温馨提示,不会把具体的出错的代码块暴露出来,这个时候想要知晓具体的错误代码方便搜索查找解决方案,将ThinkPHP框架调试状态开启是一定要处理的!
未开启错误提示:
开启错误提示:
ThinkPHP框架调试开启
请注意ThinkPHP框架版本以及开发人员设置,本渣渣这里的开启仅供参考!
- thinkphp目录中的 convention.php
经测试修改,无效!本渣渣没改对目录,这应该是总的开关!
- application目录中的 config.php
经过测试修改,有效!这应该是项目配置的开关,开启后,具体的错误代码已更新!
- 而具体的修改的地方,请看下面的代码
// 应用调试模式
//'app_debug' => false,
'app_debug' => true,
代码语言:javascript复制 // 错误显示信息,非调试模式有效
'error_message' => '页面错误!请稍后再试~',
// 显示错误信息
//'show_error_msg' => false,
'show_error_msg' => true,
很明显,开启和关闭,就是在true和false修改,而网页正常的错误提示就是'error_message' => '页面错误!请稍后再试~',这一代码!
错误解决方案
其实经过搜索资料,很容易就能得出解决方案,一搜一大把!
经过比对,的确是服务器上的磁盘空间满了,仅仅是删除了一个文件夹,网站访问就正常了!
本渣渣确实捏了一把汗!
当然还有干扰信息,虽然本渣渣按照能正常访问,但是,这个替换处理方法实际上我这边是更换了一个本地的数据库,数据倒回到了去年20年的数据!