在一次 ThinkPHP5 项目部署的时候,环境为Linux服务器。前端Vue项目通过Axios访问 接口,一直走catch的逻辑。直接在浏览器请求接口能返回正常数据,但是通过Chrome浏览器查看请求的状态码为红色的500。初步猜测前端请求不成功和ThinkPHP5 HTTP状态码500 有关。下面就详细的讲解一下如何解决ThinkPHP5 HTTP状态码500。(推荐PHP视频教程)
当发现ThinkPHP5 HTTP状态码为标红的500时,第一反应是服务器内部错误,也就是自己代码语法有问题。 首先检查这个接口的逻辑是否有问题。经过仔细排查发现并没有问题,访问其他的接口也是类似的情况,页面内容返回正常,状态码一直是500。
然后推测是否是ThinkPHP5框架的问题,就单独的写了一个简单的返回hello world。任然出现页面内容返回正常,状态码一直是500的情况。这时我仔细回顾了一下问题和之前的推测。想了很久,是不是Linux系统下runtime文件夹读写权限导致的呢?这时抱着试一试的心态,在命令行中使用chmod设置runtime文件夹权限解决了这个问题。
回过头来看,推测来解决是很多不确定性的,需要很多项目实战经验。给一些初入行的程序员的建议:
1、打开项目调试模式,直接让问题显示到页面上。这样可以大大的提高我们解决问题的效率。
2、查看服务器日志。这个错误就在apache error_log里面:PHP Fatal error: Uncaught exception ‘think\\exception\\ErrorException’ with message ‘mkdir(): Permission denied’ 。
3、多去官方文档、论坛和社区找答案,很多问题别人都已经遇到过,并且分享出来了。
4、自己多去断行调试,去推测并验证。不管能不能解决当前问题,都是对知识的一种巩固。
推荐教程:最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)
以上是如何解决ThinkPHP5 HTTP状态码500的详细内容。更多信息请关注PHP中文网其他相关文章!