在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