CodeIgniter基础配置出错90%源于四点未对齐:入口路径(Web根目录须指向public/)、路由规则(CI4必须显式声明如$routes->get('/home','Home::index'))、数据库连接(检查hostname、socket路径及conn_id)、错误提示(启用development环境与display_errors)。

CodeIgniter基础配置出错,往往不是代码写错了,而是几个关键位置没对齐。只要把入口路径、路由规则、数据库连接和错误提示这四块理清楚,90%的基础报错都能当场解决。
入口文件和Web根目录必须匹配
CI4 默认要求 Web 服务器根目录指向 public/ 目录,不是项目根目录或 app/ 目录。XAMPP、WAMP 或 Nginx 配置里如果指向了 htdocs/myapp/,就会导致 CSS、JS 加载失败,甚至整个页面白屏或 404。
- XAMPP 用户:修改
httpd.conf中的DocumentRoot和<directory></directory>,指向htdocs/myapp/public/ - Nginx 用户:server block 的
root应设为/path/to/myapp/public - 检查
app/Config/App.php中的$baseURL是否与实际访问地址一致,例如:public $baseURL = 'http://localhost/';(末尾不加路径)
路由必须显式声明(CI4重点)
CI4 不再自动把控制器名当 URL 路径。哪怕你写了 app/Controllers/Home.php,没在 app/Config/Routes.php 里注册,访问 /home 就一定报 404。
- 基础写法:
$routes->get('/home', 'Home::index');—— 注意斜杠开头、类名大小写严格、方法名小写 - 首页映射:
$routes->get('/', 'Home::index'); - 别漏掉
$routes->setAutoRoute(false);这行(默认已设,但有人手动改过) - 开发阶段可临时开启调试:
$routes->setTranslateURIDashes(true);允许 URL 中用短横线
数据库连不上?先看三处硬性配置
“Database error” 提示背后,大概率是配置项拼错、服务没开,或 socket 路径不对(尤其 macOS / Linux)。
- 确认
app/Config/Database.php中'hostname'是'localhost'还是'127.0.0.1'(某些环境 localhost 会走 socket,而 127.0.0.1 走 TCP) - macOS 用户重点检查
php.ini:确保mysqli.default_socket、pdo_mysql.default_socket指向真实的mysql.sock路径(如/tmp/mysql.sock) - 测试连接:在控制器里加一行
var_dump($this->db->conn_id);,返回 resource 表示通了,null 或 false 就得回头查参数
错误不显示?关掉屏蔽、打开调试
白屏却没报错,通常是因为错误被 @ 符号压制,或 PHP 设置关闭了错误输出。
- 在
app/Config/Boot/development.php确保error_reporting(E_ALL);和ini_set('display_errors', '1');已启用 - 检查
.env文件是否写着CI_ENVIRONMENT = development(不是 production) - CI3 用户注意:
application/config/config.php中$config['log_threshold'] = 1;可记录错误到logs/目录


















