首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Thinkphp5.1验证码错误Class ‘think\captcha\Captcha’ not found的解决方法

Thinkphp5.1验证码错误Class ‘think\captcha\Captcha’ not found的解决方法

作者头像
用户2135432
发布2018-12-13 16:10:08
8.8K0
发布2018-12-13 16:10:08
举报
文章被收录于专栏:猛牛哥的博客猛牛哥的博客

今天使用thinkphp5.1遇到个问题,验证码功能在本地环境调试正常,放到服务器上却无法显示,给出的错误信息是:致命错误: Class 'think\captcha\Captcha' not found

在官方网站找了半天,只发现有其他人也遇到了这问题,却没人给出解决方法。

我的本地环境和服务器环境一样,唯一不同就是:本地的入口文件是在thinkphp5目录下的public目录,服务器上的入口文件是在一个和thinkphp5同级的目录里面(这是因为我听从了TP5文档的建议把非入口文件放到WEB访问目录以外的目录)。

我的目录结构如下:(index-u.php是我的入口文件)

TP5-web目录结构
TP5-web目录结构

TP5-web目录结构

思来想去,系统提示Captcha类不存在,应该是因为相关文件没有被加载,应该是路径问题。这些文件在vendor文件夹内。我是新手也不会准确调试查找错误,就只能用笨方法了。通过把thinkphp目录下的vendor复制到多个不同文件夹下测试,最后找到了解决方法:就是把vendor文件夹复制到WEB访问目录的父目录里面,使它成为和WEB访问目录同级的一个目录。

正确的目录布置如图:

TP5验证码无法显示的解决方法
TP5验证码无法显示的解决方法

TP5验证码无法显示的解决方法

最后吐槽一下thinkphp5:

1、既然提倡入口文件和框架其他文件分离,就应该考虑到不是所有用户都会把入口文件放到thinkphp框架内的public文件夹。自动判断一下rootpath没什么难度吧。

2、官网有好几个人反应遇到了这样的问题,有的还是好几个月前问的,却从来没有人给出解决方案,甚至零答复。似乎没什么人关系thinkphp5,活跃度好像有点惨。新事物的船,还是晚上一点坐着才省心。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018 年 11 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档