CodeIgniter框架在Linux系统云虚拟主机上使用时出现404错误的解决方案

遇见问题

寒假期间在帮一个公司做了一个小网站,需要开发前端和后端,我采用的CI框架去开发,在本地调试的时候,都是可以的,网站快要弄完的时候,我将数据库添加到远程的数据,将使用CI框架开发的网站放到服务器上之后,却是总报404 Not Found 的错误。
CodeIgniter框架在Linux系统云虚拟主机上使用时出现404错误的解决方案_第1张图片
此时我又在本地的Apache的环境上跑了一下,完全没有问题;于是就特别的郁闷,项目便不能在进一步的写下去,一开始是怀疑是不是云虚拟主机不支持这个框架吗?还是PHP的版本不支持?就开始在网上找答案,没有得到比较好的解决方法;于是为了测试到底是不是因为云虚拟主机不支持CI框架或者是PHP版本的问题,我就直接把一个刚下载的CI框架的源码放上面,通过浏览器去访问,哇,出现了欢迎页面;这说明**云虚拟主机 **上CI框架完全没有问题。

解决问题

此时去比较两个目录结构,发现下载的原版的CI框架的里的PHP文件是大写字母开头
CodeIgniter框架在Linux系统云虚拟主机上使用时出现404错误的解决方案_第2张图片
但是我的文件名是小写开头的
CodeIgniter框架在Linux系统云虚拟主机上使用时出现404错误的解决方案_第3张图片
这里为了比较和说明这个问题,我直接把CI框架原文件中的Welcome.php改成了welcome.php
在实际项目中以实际项目的文件名为准。

发现了这个区别之后,就试着把文件名的所有首字母都改成大写,页面终于可以加载到了;但时在调用数据库的model时还是会出现,找不到model的文件,又把model里面的文件的首字母全都改成大写;我的页面终于可以浏览器中呈现出来;
CodeIgniter框架在Linux系统云虚拟主机上使用时出现404错误的解决方案_第4张图片

总结解决方法

这个问题的的原因在于Windows的系统上不区分大小写,但是在Linux系统的里面是区分大小写的,所以在本地可以正常跑的代码,放到服务器上就正常的加载。
所以在遇到这个问题的时候,只需要把你自己所创建的所有的文件名都修改为首字母为大写的文件按名即可。

你可能感兴趣的:(PHP,CodeIgniter)