Linux部署Thinkphp3.2中Url请求404

在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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容