背景
有一个老项目一直使用的是ThinkPHP3.2的框架,发现线上部署的一直是DEBUG模式,但是debug模式下性能比较差,尝试关闭debug模式,发现有些页面却出现了错误,现在汇总一下可能的原因和解决方案
define('APP_DEBUG', false); //关闭debug模式
原理
关闭APP_DEBUG之后他会在Runtime生成一个common~runtime.php的文件,如果发现有问题,可以先删除这个文件,让他重新生成,或者把这个文件copy出来格式化,找找具体报错的原因
开启数据库字段缓存,可以大量减少数据库压力,修改数据库表结构需要删除该缓存
'DB_FIELDS_CACHE' => true, // 启用字段缓存
一旦关闭调试模式,发生错误后不会提示具体的错误信息,如果你仍然希望看到具体的错误信息,那么可以如下设置:
'SHOW_ERROR_MSG' => true, // 显示错误信息
调试模式的优势
1. 开启日志记录,任何错误信息和调试信息都会详细记录,便于调试;
2. 关闭模板缓存,模板修改可以即时生效;
3. 记录SQL日志,方便分析SQL;
4. 关闭字段缓存,数据表字段修改不受缓存影响;
5. 严格检查文件大小写(即使是Windows平台),帮助你提前发现Linux部署可能导致的隐患问题;
6. 通过页面Trace功能更好的调试和发现错误;
问题一:
部署模式下common/common/function.php文件中使用了 相对路径包含其他文件,这个不支持,必须改为:
require_once APP_PATH.'Common/Common/Base.php';
……
require_once APP_PATH.'Common/Common/Other.php';
原来是
require_once 'Base.php'; …… require_once 'Other.php';
问题二:
CONTROLLER 结果变了
原来url对应关系:
/XZ/GongGaoController.php => /XZ/GongGao
关闭Debug后对应关系:
/XZ/GongGaoController.php => /xz/gong_gao
关闭大小写
'URL_CASE_INSENSITIVE'=>false,
其他问题再补充...
- 本文固定链接: https://phpmianshi.com/?id=395
- 转载请注明: admin 于 PHP面试网 发表
《本文》有 0 条评论