Nginx配置CI框架问题(Linux平台下Centos系统)

CI框架:官方文档 http://codeigniter.org.cn/user_guide/index.html

CI框架的数据流程图如下:

其中:index.php作为入口文件,在安装好CI框架后,index.php文件一般放置在Nginx服务器(其他服务器相同)所配置的web根目录下,Nginx配置文件在 xxx/nginx/conf/nginx.conf文件中,其中xxx为安装路径,如配置.php的解析文件可用如下模板:

 1 server {
 2         listen       80;  // 监听的端口
 3         root /dir_1/dir_2/dir_3;
 4         server_name www.example.com;
 5         index index.html index.htm index.php;
 6
 7         location /
 8         {
 9             try_files $uri $uri/ /index.php?$args;
10         }
11         location ~ \.php$
12         {
13             fastcgi_pass 127.0.0.1:9000;
14             fastcgi_index index.php;
15             include fastcgi.conf;
16         }
17 }

其中index.php文件要放置在根目录 /dir_1/dir_2/dir_3 下。URL为www.example.com:port/index.php/class/function/arg或者www.example.com/class/function/arg,其中www.example.com可换成ip地址加端口号,Nginx默认监听端口号为80,所以当端口为80时可不加,其他端口要在URL中明确指明

————————————————————————————————————————————————————————

而当有多个CI框架项目都需要布置在Nginx服务器是时,有两种方法:

1. 在Nginx配置文件中再配置一个虚拟机,并重新设置根目录,监听尚未使用的端口号(不推荐)

2. 不需要更改根目录,需要使用rewrite 指令和修改CI框架中的路由规则,即$route数组,具体如下:

例如当index文件所在位置为 /dir_1/dir_2/dir_3/test1/test2/test3/index.php

首先:将Nginx配置文件改为:

server {
          listen       80;  // 监听的端口
          root /dir_1/dir_2/dir_3;
          server_name www.example.com;
          index index.html index.htm index.php;

          location /
          {
              try_files $uri $uri/ /index.php?$args;
          }
          location ~ \.php$
          {
              fastcgi_pass 127.0.0.1:9000;
              fastcgi_index index.php;
              include fastcgi.conf;
          }
          location /test1/test2/test3/
         {
             rewrite ^/test1/test2/test3/(.*)$ /test1/test2/test3/index.php/$1 break;
             fastcgi_index index.php;
             fastcgi_pass  127.0.0.1:9000;
             include fastcgi.conf;    // fastcgi.conf为php解析库相关文
     }
 }

其中fastcgi.conf为自己定义的,如若无,可换成:

1 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
2 include fastcgi_params;

PS: 每次配置好Nginx后,记得要重启Nginx,使配置生效!

然后,修改CI框架中路由规则,在CI的Application/conf目录下,找到routes.php文件,在末尾添加:

$route[‘test1/test2/test3/(.+)‘] = "$1";

之后 URL可为www.example.com:port/test1/test2/test3/class/function/arg,查看php的www.access.log可发现,nginx已经将链接重写为www.example.com:port/test1/test2/test3/index.php/class/function/arg,同样的由于Nginx默认监听端口号为80,所以当端口为80时可不加,其他端口要在URL中明确指明。

时间: 2024-10-12 20:28:53

Nginx配置CI框架问题(Linux平台下Centos系统)的相关文章

Linux平台下Java_Android开发环境的搭建

Linux 平台下安装JDK .Eclipse .Android SDK 说明 开发工具需自行去下载,此处就不再累述 该教程安装环境为 Ubuntu 14.04 x64 其他Linux操作方式基本相同 设计文件修改部分,请先备份要修改的文件,避免操作失误导致不能还原 Liunx 平台下区分大小写,输入文件名或路径建议复制避免不必要的错误 部分操作涉及root权限,为了避免麻烦 请直接使用 root权限操作 开启root权限: 1. sudo su root 2. 后面的提示中输入用户密码 安装

在linux平台下,设置core dump文件属性(位置,大小,文件名等)

在linux平台下,设置core dump文件生成的方法: 1) 在终端中输入ulimit -c 如果结果为0,说明当程序崩溃时,系统并不能生成core dump. 2) 使用ulimit -c unlimited命令,开启core dump功能,并且不限制生成core dump文件的大小.如果需要限制,加数字限制即可.ulimit - c 1024 3) 默认情况下,core dump生成的文件名为core,而且就在程序当前目录下.新的core会覆盖已存在的core.通过修改/proc/sys

Linux平台下:块设备、裸设备、ASMlib、Udev相关关系

对磁盘设备(裸分区)的访问方式分为两种:1.字符方式访问(裸设备):2.块方式访问 Solaris平台 : 在Solaris平台下,系统同时提供对磁盘设备的字符.块方式访问.每个磁盘有两个设备文件名: 一个在/dev/dsk目录下,比如/dev/dsk/c1t1d1s1,当以这个设备名操作时,就是以块的方式操作磁盘: 一个在/dev/rdsk目录下,比如/dev/rdsk/c1t1d1s1,当以这个设备名操作时,就是以字符方式(裸设备方式r)操作磁盘 Linux平台 : 在linux平台下,缺省

Linux平台下Python的安装及IDE开发环境搭建

Linux平台下Python的安装及IDE开发环境搭建 1.Python安装 Python有2.X和3.X两个版本,由于2.X的版本较稳定,使用者也较多,本文选择使用Python 2.X版本. 安装步骤: (1) 下载Python安装包:https://www.python.org/downloads/ (2)  解压安装包:tar zxvf Python-2.7.10.tgz (3)  编译:./compile (4)  安装:make && make install 说明: ① 这样p

关于Linux平台下的ZFS文件系统最新情况

Linux平台下的ZFS文件系统分类两个,一个是在用户空间实现的ZFS,一个是通过内核模块实现的ZFS. 用户空间实现的ZFS已经好几年没人维护了,且不说稳定性,单是性能就无法用,相关开发人员已放弃. 内核空间实现的ZFS一直在维护,美国有相关机构在内部使用,按照zfsonlinux上的开发者所说,早已经稳定了,可以在线上使用,但国内使用的人还是寥寥.可能最大的问题就是,由于Solaris自身发布协议和专利纠纷的限制,此项目的代码仍是基于CDDL发布的,因而不会进入主线内核,所以大家普遍感觉不是

linux平台下Oracle database的安装与/etc/redhat-release

linux平台下,在安装oracle10.2.0.1的时候,不要修改/etc/redhat-release的内容. 而是要用runInstaller的一个参数去解决:-ignoreSysPreReqs.因为emc的多路径软件在安装时会读取该文件的内容,错误的内容会导致emc多路径软件安装失败.这也算是一个最佳实践吧. 版权声明:本文为博主原创文章,未经博主允许不得转载.

CentOS7上安装并配置KVM,以及通过KVM安装CentOS系统

笔记内容:CentOS7上安装并配置KVM,以及通过KVM安装CentOS系统笔记日期:2018-03-07 28.5 Centos7上安装KVM 28.6 配置网卡 28.7 创建虚拟机安装CentOS7 28.8 虚拟机管理 Centos7上安装KVM 首先我们需要一台配置较高的CentOS7虚拟机,当然用物理机也可以,我这里用的是虚拟机,配置如下: 硬盘需要新增一个,其中的新硬盘用于在KVM里安装操作系统时需要用到,内存的大小最好有4个G,最低2个G,因为我这里物理机的内存有16G所以就给

linux平台下Hadoop下载、安装、配置

在这里我使用的linux版本是CentOS 6.4 CentOS-6.4-i386-bin-DVD1.iso 下载地址: http://mirrors.aliyun.com/centos/6.8/isos/i386/ 0.使用host-only方式 将Windows上的虚拟网卡改成跟linux上的网卡在同一个网段上 注意:一定要将windowsh 的WMnet1的ip设置和你的虚拟机在同一网段,但是ip不一样 一.前期工作: 1.修改linux ip 手动修改 也可以命令修改 vim /etc/

linux平台下nginx部署webpy

需要安装的工具: nginx webpy spawn-fcgi flup 注意: You may replace index.py with your own file name. /path/to/www Is the path to the directory where your webpy application is located. /path/to/www/index.py is the full path to your python file. Do not run anyth