thinkphp 3.2 去除调试模式后报错,怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp 3.2 去除调试模式后报错,怎么解决相关的知识,希望对你有一定的参考价值。

1. ..案例一:

最近用Thinkphp开发一个项目,本地开发测试完成上传到服务器后,第一次打开正常,再刷新页面时就出现 “页面调试错误,无法找开页面,请重试”的错误.

我就郁闷啦,明明本地设置define('APP_DEBUG', false) 运行没点问题,怎么放到服务器上就出错了昵?

baidu,Google还是没有找到解决方案,突然发现项目APP_Name/Runtime/Cache目录和APP_Name/Runtime/Logs目录没有可写权限,果断更改,F5,唉好啦,妈妈再也不用担心出现错误信息啦!

2.案例二:

ThinkPHP 将 APP_DEBUG 常量设置为 false 后出现了类似下面的问题:

复制代码 代码如下:
Parse error: syntax error, unexpected T_STRING in E:\PHPnow\htdocs\ojbak\Runtime\~app.php on line 1

或者直接报”服务器错误”, 怎么办?
这个和 PHP 有关系,在 php.ini 里修改配置

复制代码 代码如下:
short_open_tag = On

因为 app.class.php 里面的 build 方法:
当开启了调试模式后,会获取相关文件的内容 然后重新组合成文件 这个时候是会自动加上 的
也就是你看到的 ~app.php 文件了
但是当你不开启调试模式后,会每次都会加载相关的文件,这样子,你的错误就暴露出来了。

3.案例三:

在thinkphp中将APP_DEBUG设置为false之后,数据查询(select, find等等)总是显示第一条。。但是把APP_DEBUG设置为true之后,就正常了。。这是为什么?有什么解决方案吗?

正常来说,APP_DEBUG是调试模式,放到线上环境,尽量要设置为false的。。

自己找一个select查询,在关闭debug的情况下,用写文件的方式调试下查询后生成的sql。
参考技术A 查看Page_trace中的错误信息 参考技术B 关闭调试模式后,会在Runtime多出来一个文件叫common~runtime.php,基本的系统方法都在里面,把这个文件的内容通过php代码格式化一下,然后拷到IED一个新建的文件里,这时可以看到错误的地方,根据错误的地方找到对应的系统文件注释或者修改文件,一般是在\ThinkPHP\Library\Think下面的文件,修改完成后,删除common~runtime.php再试一次,这样就成功了,哈哈哈

ThinkPHP开发模式

tp框架有两种模式:开发模式(调用模式),一种是生产模式(运行模式)

define(\'APP_DEBUG\', true);  //调试模式

 

define(\'APP_DEBUG\', FALSE);  //运行模式 不写也是运行模式

调试模式:文件加载的多,有报错,加载速度慢

运行模式:文件加载的少,加载速度快

在页面底部显示日志信息

配置完成后 页面的左 右 下角会出现

 

以上是关于thinkphp 3.2 去除调试模式后报错,怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

PHP Thinkphp中开启debug 报错,是啥原因?

thinkphp将APP_DEBUG常量设置为false后报错的问题

Thinkphp3.2关闭调试模式以后第二次打开页面就会出现报错,请问一般问题在哪里?怎么解决?

ThinkPHP 重写模式去除index.php 浏览器显示Not Found 找不到啊。求解

thinkphp 3.2 生成二维码 在本地测试没问题 放到服务器上就报错了

thinkphp 3.2 生成二维码 在本地测试没问题 放到服务器上就报错了