我正在开发和应用于纤薄的框架。我已将调试设置为true,但每当出现错误时。它使应用程序进入http 500内部错误发生状态,但没有告诉我错误实际发生的位置以及导致它的原因。如何查看错误原因?
这是我的代码:
require 'lib/vendor/PHPMailer/PHPMailerAutoload.php';
require 'lib/init.php';
require 'lib/Slim/Slim.php';
date_default_timezone_set('UTC');
use lib\Slim\Middleware\SessionCookie;
\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim([
// cookie encryption (strongly recommend)
'log.level' => \Slim\Log::DEBUG,
'cookies.encrypt' => true,
'cookies.secret_key' => 'put your secret key',
// session config
'sessions.driver' => 'database', // or database
//'sessions.files' => __DIR__ . '/../sessions', // require mkdir
'sessions.table' => 'sessions', // require create table#
'debug' => true,
]);
$app->run();
有什么建议吗?
答案 0 :(得分:0)
在slim中启用调试时,不会显示致命的解析错误。配置只启用异常的错误处理程序。因此,如果您的某个库抛出异常,则slim会以可读的方式呈现它们。在要禁用调试的生产系统上,导致异常的堆栈跟踪可能会发现潜在的安全漏洞。
查看代码,我建议使用https://getcomposer.org/自动加载和管理您的库。使用扩展来管理Slim3肯定不那么重要了。
对于500er错误,我猜你的use
是错误的。但是,查看服务器的错误日志应该会显示错误的位置。
在命令行上,您可以尝试php -l filename.php
查找简单的解析错误。