Linux部署Thinkphp3.2中Url请求404

2018-12-11  本文已影响0人  程序小白菜

在windows本地开发好的项目,部署到线上环境中遇到的一些问题处理

一、为了项目运行安全,不暴露所选的PHP框架,会修改Thinkphp的错误页面,如下图

而改为我们自定义的错误页面

方案:

配置参数: 'TMPL_EXCEPTION_FILE' => './error_404.html',

二、为了隐藏报错信息,会把入口文件的调试模式设置为false,此时线上请求地址携带驼峰的url会报错,如xxxx.com/Home/Index/userInfo

1、排错技巧:

(1)、排查nginx的配置是否有错,排查nginx能否收到请求,转发路由是否报错

(2)、排查Thinkphp框架的Runtime/Logs日志,查看具体错误信息

2、遇到的问题示例:

(1)、Fatal error: Uncaught Error: Class 'Think\Log' not found in /home/www/bus/ThinkPHP/Library/Think/Think.class.php:335

若报这个错,一般问题时Runtime文件目录在Linux的权限问题,一是给Runtime文件赋予权限,

chmod 777 -R 路径/Runtime/  

删除 rm -rf 路径/Runtime/common~runtime.php 文件

(2)、在控制器的方法名时驼峰写法,在模板文件的名称也是驼峰写法,请求报错:

查看框架日志报错:

ERR: 模板不存在:./View/Home/Index/userInfo.html

这是由于Thinkphp框架在$this->display()默认解析的模板文件大小问题

方案:在$this->display()中把模板文件名给加上,如$this->display('userInfo')即可

参考链接:

https://blog.csdn.net/dengjiexian123/article/details/53121552

https://blog.csdn.net/szuaudi/article/details/77879834

上一篇下一篇

猜你喜欢

热点阅读