codeigniter的一些笔记
CodeIgniter 部署到 Linux 服务器,本地好好的,上线就 session 丢、跳转错域名,十有八九是配置没跟环境对齐。这篇记两个当时踩过的坑。
codeigniter 部署坑
session 文件路径问题
典型现象:登录后刷新又未登录,或者报错写 session 失败。CI 默认走 PHP 的 session 存储路径,而 php.ini 里配置的路径在 Web 用户(如 www-data)下可能没有写权限。
解决方法
在application/config/config.php 中最后一行, 加入
$config['sess_save_path'] =BASEPATH.'../'.'session_file';
同时在项目根目录旁建好 session_file 目录,并给 Web 服务器用户写权限。改完再测登录态是否持久。

原因
未设置ssesion文件路径,会默认使用php.ini的文件路径,可能会出现无路径访问权限的问题
一句话:session 写哪儿要显式指定,且目录得可写。别假设 php.ini 的默认路径在生产环境一定可用。
baseurl 修改
从本地搬到线上,或从 HTTP 换 HTTPS,base_url 不改的话,生成的链接、静态资源、重定向都会指错地方,表现为样式丢失或跳转回 localhost。
要记得修改baseurl的值,以免出现访问不成功的情况
$config['base_url'] = 'https://www.farminbackyard.com';
按实际域名和是否带尾斜杠与 CI 版本习惯统一即可。部署 checklist 里建议固定两项:base_url、sess_save_path,能少踩一半「线上怪病」。
pasue;
版权声明: 本文首发于 指尖魔法屋-codeigniter的一些笔记(https://blog.thinkmoon.cn/post/159-notes-codeigniter-php/) 转载或引用必须申明原指尖魔法屋来源及源地址!
