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_urlsess_save_path,能少踩一半「线上怪病」。

pasue;

版权声明: 本文首发于 指尖魔法屋-codeigniter的一些笔记https://blog.thinkmoon.cn/post/159-notes-codeigniter-php/) 转载或引用必须申明原指尖魔法屋来源及源地址!