干脆搜起来源代码了。
于是我找到了以下办法查看错误信息。
在/var/typecho/common.php里边有个error函数。
详细的错误在这里被覆盖了。我加上了一个判断
代码: 全选
/**
* 输出错误页面
*
* @access public
* @param mixed $exception 错误信息
* @return void
*/
public static function error($exception) {
$isException = is_object($exception);
if ($isException) {
$code = $exception->getCode();
$message = $exception->getMessage();
} else {
$code = $exception;
}
require_once 'Typecho/Response.php';
$charset = self::$charset;
if ($isException && $exception instanceof Typecho_Db_Exception) {
$code = 500;
@error_log($message);
//覆盖原始错误信息
$message = __Typecho_debug__ ? $message : 'Database Server Error';
if ($exception instanceof Typecho_Db_Adapter_Exception) {
$code = 503;
$message = __Typecho_debug__ ? $message : 'Error establishing a database connection';
} else if ($exception instanceof Typecho_Db_Query_Exception) {
$message = __Typecho_debug__ ? $message : 'Database Query Error';
}
} else {
switch ($code) {
case 500:
$message = __Typecho_debug__ ? $message : 'Server Error';
break;
case 404:
$message = __Typecho_debug__ ? $message : 'Page Not Found';
break;
default:
$code = 'Error';
break;
}
}
/** 设置http code */
if (is_numeric($code) && $code > 200) {
require_once 'Typecho/Response.php';
Typecho_Response::setStatus($code);
}
$message = nl2br($message);
if (defined('__TYPECHO_EXCEPTION_FILE__')) {
require_once __TYPECHO_EXCEPTION_FILE__;
} else {
echo
<<<EOF
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="{$charset}">
<title>{$code}</title>
<style>
html {
padding: 50px 10px;
font-size: 20px;
line-height: 1.4;
color: #666;
background: #F6F6F3;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
html,
input { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
body {
max-width: 500px;
_width: 500px;
padding: 30px 20px 50px;
margin: 0 auto;
background: #FFF;
}
h1 {
font-size: 50px;
text-align: center;
}
h1 span { color: #bbb; }
ul {
padding: 0 0 0 40px;
}
.container {
max-width: 380px;
_width: 380px;
margin: 0 auto;
}
</style>
</head>
<body>
<div class="container">
<h1>{$code}</h1>
{$message}
</div>
</body>
</html>
EOF;
}
exit;
}
以上是修改后的。然后在config文件里添加
代码: 全选
define('__Typecho_debug__', 1);