You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter中Class 'Public_Controller'未找到问题求助(本地正常服务器报错)

解决CodeIgniter中Public_Controller未找到的问题

可能原因及对应解决方法

1. 文件名/类名大小写不匹配

Linux服务器严格区分文件名大小写,而Windows环境不区分。检查以下内容:

  • 确认Public_Controller的类文件名为Public_Controller.php(首字母及下划线后的字母均大写),而非public_controller.php或其他大小写组合。
  • 检查Auth.php中引入基类的语句,比如require_once APPPATH.'core/Public_Controller.php';,路径里的文件名必须和实际文件完全一致。

2. 基类文件存放路径错误

CodeIgniter自定义核心控制器默认存放目录为application/core/,请确认:

  • Public_Controller.php确实在application/core/文件夹内,而非controllers或其他目录。
  • 若修改过核心类存放路径,需在application/config/config.php中调整$config['subclass_prefix']配置,确保框架能识别自定义基类的前缀。

3. 自动加载配置未配置

若未手动引入基类文件,需确保框架能自动加载:

  • 打开application/config/autoload.php,检查$autoload['core']数组中是否添加了'Public_Controller';若你的基类前缀不是默认的MY_,需修改config.php中的$config['subclass_prefix'] = 'Public_';。

4. 文件权限问题

服务器文件权限不足可能导致框架无法读取基类文件:

  • 将application/core/目录权限设置为755,目录内文件权限设置为644,确保Web服务器进程拥有读取权限。

5. 缓存或编译文件问题

若服务器开启了OPcache等缓存机制,可能缓存了旧的文件状态:

  • 重启Apache/Nginx及PHP-FPM服务,清除OPcache缓存。
  • 删除application/cache/目录下的缓存文件(若存在)。

内容的提问来源于stack exchange,提问作者Mr. RStark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 17:35:12