猛牛哥
记录网络点滴生活

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

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

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

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

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

TP5-web目录结构

TP5-web目录结构

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

正确的目录布置如图:

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

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

最后吐槽一下thinkphp5:

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

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

赞(4) 打赏
猛牛哥原创:猛牛哥的博客 » Thinkphp5.1验证码错误Class ‘think\captcha\Captcha’ not found的解决方法

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏