提问人:rostamiani 提问时间:9/5/2019 最后编辑:rostamiani 更新时间:9/18/2019 访问量:2222
Codeigniter 3 在生产模式下显示错误
Codeigniter 3 shows errors in production mode
问:
我在生产模式下使用 Codeigniter 3,但显示错误。我的 Web 服务器是 Wampserver 3.1.7,默认php.ini。如何禁用错误报告?
这是我index.php的一部分:
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'production');
switch (ENVIRONMENT)
{
case 'development':
error_reporting(-1);
ini_set('display_errors', 1);
break;
case 'testing':
case 'production':
ini_set('display_errors', 0);
if (version_compare(PHP_VERSION, '5.3', '>='))
{
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED);
}
else
{
error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE);
}
break;
default:
header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
echo 'The application environment is not set correctly.';
exit(1); // EXIT_ERROR
}
这是我错误的一部分:
<div style="border:1px solid #990000;padding-left:20px;margin:0 0 10px 0;">
<h4>An uncaught Exception was encountered</h4>
<p>Type: Error</p>
<p>Message: Call to a member function result() on bool</p>
<p>Filename: D:\Projects\Nafis Global System\Server\application\core\MY_Model.php</p>
<p>Line Number: 377</p>
<p>Backtrace:</p>
更新:
仅显示一些错误。例如,如果未建立Mysqli连接,则会显示以下错误:
消息:调用成员函数 real_escape_string() on bool
答:
2赞
DFriend
9/6/2019
#1
最常见的设置位置是使用 SetEnv 指令,例如CI_ENV
.htaccess
SetEnv CI_ENV production
通常的做法是将不同的 .htaccess 用于开发服务器和 Live Server。在开发箱上使用
SetEnv CI_ENV development
以上内容涉及Apache服务器,这些服务器也必须启用才能工作。env_module
SetEnv
NGINX 或其他 Web 服务器使用不同的机制来设置变量。
还应该调整生产环境的数据库配置。特别是项目 .在那里分配的值也可以使用变量动态设置,例如在 application/config/database.php 中'db_debug
ENVIRONMENT
$db['default'] = array(
//bunch of items,
'db_debug' => ENVIRONMENT == 'development' ? true : false,
//more items
);
评论
production
echo ENVIRONMENT
echo ENVIRONMENT