背景
因公司老项目使用CI框架,想学习一下,于是官网下载CI4框架后,像往常一样在phpstudy中创建网站,路径指向CI框架的目录,但是并没有成功展示CI框架的页面。
CI框架目录
错误:因为phpstudy默认访问的是php项目根目录的index.php文件,但是发现根目录下并无此文件,于是复制public对外根目录下的 .htaccess 和 index.php 文件到根目录,打开网站,网页报错
Warning: require ... : failed to open stream: No such file or directory in ...
Fatal error: require(): Failed opening required ... in ...
步骤1:更改了根目录下index.php文件中为
$pathsConfig = FCPATH . 'app/Config/Paths.php'; // 去除 app 前面的 ../
配置环境
错误:再次打开网站,页码依旧报错
步骤1:查看CI官网,需要将根目录下的env文件修改为.env
CI_ENVIRONMENT = development // 将前面的 # 去掉,production 修改为 development
步骤2:打开 app -> Config -> Boot -> production.php
ini_set('display_errors', '0'); 将 0 改为 1
最终解决
错误:再次打开网站,还是出现报错的页面
很明显提示的是缺少必要的php扩展intl
步骤1:打开你php版本所在目录,打开php.ini文件,搜索extension=intl
;extension=intl 改成 extension=intl // 去除前面的';'号
重启 Apache,成功打开CI4框架默认页面。
总结
其实按照CI官网的教程一步步来是可以解决大部分问题的,只是一些你自己所用的环境有些差异需要进行不同的配置,像我用的环境phpstudy,有些用wampserver等等...但本质都是大同小异的。(我是初学php的小白,还有很多我不明白的,比如intl这个扩展是什么作用?pathsConfig的作用是配置什么的?env文件为何需要改不同的配置解决报错?等等...)
废话不说,解决步骤全部重新直观的整理一下。
1. 复制 public 目录下 .htaccess 和 index.php 到项目根目录,修改 index.php 文件中此处代码为
$pathsConfig = FCPATH . 'app/Config/Paths.php';
2. 将env文件前面加一个'.'改为.env文件,并修改此文件环境
CI_ENVIRONMENT = development // 记得去掉前面 # 的注释
3. 打开 app -> Config -> Boot -> production.php 文件,修改代码如下
ini_set('display_errors', '1'); // 0 换成 1
4. 打开php.ini文件,修改配置如下
;extension=intl 改成 extension=intl // 去除前面的';'号