下载

  可在官网下载,我使用的是CodeIgniter-3.1.7。

目录

  打开程序目录,可看到目录结构。

  我这里做一点小的修改,新建了一个 index 目录,将 index.php 和一些静态文件放入这个目录里。这样做的主要目的是只将入口文件 index.php 暴露在网站根目录下,而将程序的网站业务文件目录 application 和系统文件目录 system 等其他的文件放在网站根目录外,避免用户可以直接访问到。

  application ——  网站业务文件目录。里面包含有缓存(cache)目录,配置文件(config)目录,控制器(controllers)目录,模型(models)目录, 视图(views)目录,日志文件(logs)目录等。

  index——网站根目录。里面包含网站唯一入口文件index.php,以及一些css文件,js文件,图片等静态和公共可访问资源。

  system——框架系统文件目录。里面有框架运行的核心文件 core ,各种包装好的可供使用的工具类 libraries,语言文件 language,字体文件 fonts 等。

  user_guide——用户使用说明书。

  .editorconfig—— 统一代码风格文件。该文件用来定义项目的编码规范,编辑器的行为会与.editorconfig 文件中定义的一致,并且其优先级比编辑器自身的设置要高,这在多人合作开发项目时十分有用而且必要。有些编辑器支持,有些不支持。

indent_style 设置缩进风格(tab是硬缩进,space为软缩进)
indent_size 用一个整数定义的列数来设置缩进的宽度,如果indent_style为tab,则此属性默认为tab_width
tab_width 用一个整数来设置tab缩进的列数。默认是indent_size
end_of_line 设置换行符,值为lf、cr和crlf
charset 设置编码,值为latin1、utf-8、utf-8-bom、utf-16be和utf-16le,不建议使用utf-8-bom
trim_trailing_whitespace 设为true表示会去除换行行首的任意空白字符。
insert_final_newline 设为true表示使文件以一个空白行结尾
root    表示是最顶层的配置文件,发现设为true时,才会停止查找.editorconfig文件

  .gitignore——git操作忽略的文件夹和文件。

  composer.json——CI框架的composer配置文件。Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。意味着你可以通过composer来安装CI框架以及加载扩展。

  contributing.md——告诉你CI是一个开源的框架,你如何参与这个项目,贡献代码。

  license.txt——MIT许可证协议。较为宽松,允许你修改代码,也可以用于商业用途。

  readme.rst——CI的一个自我介绍,也告诉你使用安装时的注意事项。

安装

  按照安装说明进行安装。值得说明的是,因为我改变了index.php的默认位置。所以需要在index.php中设置 application 和 system 文件夹的绝对路径。还有,为了使得url地址得到美化(不带.php)。我在nginx配置对应的server模块中加入如下配置:

    location / {
try_files $uri $uri/ /index.php?$query_string;
}

  这句话是什么意思呢?

  $uri  这个是nginx的一个变量,存放着用户访问的地址,比如:http://www.xxx.com/index.html, 那么$uri就是 /index.html

    $uri/ 代表访问的是一个目录,比如:http://www.xxx.com/hello/test/    ,那么$uri/就是 /hello/test/

  $query_string代表的是请求行中参数字符串.比如:http://www.xxx.com/hello/test/index.php?a=3,那么$query_string就是a=3。

  完整的解释就是:try_files 去尝试到网站目录读取用户访问的文件,如果第一个变量存在,就直接返回;不存在继续读取第二个变量,如果存在,直接返回;不存在直接跳转到index.php上去,并且附带参数字符串。

  原先在没有nginx的改写配置前,我们需要通过这样的方式访问http://www.example.com/index.php/welcome/index。现在我们可以http://www.example.com/welcome/index这样访问URL了。

参考文档:

统一代码风格工具——editorConfig

ngx_http_core_module 模块

php优秀框架codeigniter学习系列——安装,配置的更多相关文章

  1. php优秀框架codeigniter学习系列——前言

    php的框架众多,笔者用过的包括thinkphp,CI,smarty,laravel,也用过一些公司自己开发的框架. thinkphp是国人自己开发的,我大概用过一段时间,基本功能都还好,应该也还比较 ...

  2. php优秀框架codeigniter学习系列——CI_Security类学习

    这篇文章主要介绍CI核心框架工具类CI_Security. 安全类包含了一些方法,用于安全的处理输入数据,帮助你创建一个安全的应用.以下选取类中的重点方法进行说明. __construct() 在构造 ...

  3. php优秀框架codeigniter学习系列——CI_URI类学习

    这篇文章主要介绍CI核心框架工具类CI_URI. 该类主要用来解析uri和决定路由的.关于URI和URL的关系请参考这位朋友的文章.简单来说URI是唯一定位的资源,URL是唯一资源的一个网络可能访问路 ...

  4. php优秀框架codeigniter学习系列——hooks

    这篇文章学习CI框架的钩子特性. hooks是CI框架提供的一种机制,允许你在程序框架运行流程的某个阶段执行你自己的一些代码.比如系统运行前,CI_Controller调用前,系统运行结束后等特定的时 ...

  5. php优秀框架codeigniter学习系列——CodeIgniter.php概览

    CodeIgniter.php是CI框架的核心文件.它在前端控制器index.php之后运行,加载各类基础组件,执行请求.文件执行完成后,这次请求也就结束了.所以,该文只能对CodeIgniter.p ...

  6. php优秀框架codeigniter学习系列——index.php

    程序流程图 先来看看CI框架运行的程序流程图. 从图中我们 看到,index.php作为唯一的入口文件,会初始化CI框架运行所需的基本资源. 路由器(Routing)会根据http请求,确定如何处理: ...

  7. php优秀框架codeigniter学习系列——CI_Controller分析

    该类是一个超级大的父类,它将在 CodeIgniter.php 中实例化化过的类,通通加载成它的类成员变量,所以可以方便的进行各种操作.各种应用控制器类,都会继承 CI_Controller 类. _ ...

  8. php优秀框架codeigniter学习系列——CI_Output类的学习

    这篇文章主要介绍CI核心框架工具类CI_Output. 根据CI文档自己的定义,这个类主要就是生成返回的页面给浏览器.以下选取类中的重点方法进行说明. __construct() 在构造函数中,主要确 ...

  9. php优秀框架codeigniter学习系列——CI_Router类学习

    这篇文章主要介绍CI核心框架工具类CI_Router. 如果说CI_URI类是用来解析URI,那么CI_Router类就应该是根据解析出来的URI来决定究竟访问哪一个文件和哪一个function. 详 ...

随机推荐

  1. PHP中工厂模式与策略模式区别

    策略模式需要自己动手去做,工厂模式是都准备好了你需要选择 工厂模式:有一天你决定去吃披萨,一看菜单,哦,种类很多呀,你就点了个培根披萨,过了二十分钟,你的披萨就来了就可以吃到了.但这个披萨是怎么做的, ...

  2. Misha and Palindrome Degree CodeForces - 501E (回文串计数)

    大意: 给定字符串, 求多少个区间重排后能使原串为回文串. 先特判掉特殊情况, 对于两侧已经相等的位置之间可以任意组合, 并且区间两端点至少有一个在两侧相等的位置处, 对左右两种情况分别求出即可. # ...

  3. Integer To Roman leetcode java

    问题描述: Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range fr ...

  4. aboutme and my goal

    active, diligent ,work hard now,I am a sophomore,I must workhard ,ecspacially my major ,so , pass CE ...

  5. ubuntu开启慢日志

    ubuntu 开启mysql日志记录 1.找到mysql的配置文件sudo vim /etc/mysql/my.cnf将下面两行的#去掉#general_log_file = /var/log/mys ...

  6. leetcode-algorithms-3 Longest Substring Without Repeating Characters

    leetcode-algorithms-3 Longest Substring Without Repeating Characters Given a string, find the length ...

  7. SecureCRT自动记录日志

    From: http://lzj0470.iteye.com/blog/1189368 今天在推特上看到有人谈起SecureCRT日志记录的问题,貌似很多人都有这习惯 我是开始工作后才使用Secure ...

  8. docker实战系列之搭建rabbitmq

    1.搜索镜像[注:因为我这里采用的是阿里云镜像加速器,所以我直接在阿里云中搜索相关镜像路径],点击"详情"查看公网拉取路径 2.拉取镜像 docker pull registry. ...

  9. Js replace() 方法笔记

    最近捣鼓着学习Js,发现replace()真的很有用,替换功能杠杠的棒. 接下来看看我遇到的问题: 有两个随机给出的字符串,字符串1'xxxxxx',字符串2'====T'(这两个用作示例,其他为随机 ...

  10. win7下使用U盘安装双系统(Ubuntu-17)

    1.首先下载Ubuntu镜像文件,下载地址:http://mirrors.neusoft.edu.cn/ 2.下载 U盘操作系统安装工具- Universal USB Installer ,下载地址: ...