CentOS 下用的是lnmp 的包配置Nginx 下的CI伪静态(搞爽了)

简介: server { listen 80; server_name cy.com; index index.
server
        {
                listen       80;
                server_name cy.com;
                index index.html index.htm index.php default.html default.htm default.php;
                root  /home/wwwroot/cy;

                location / {
                      if (-e $request_filename) {
                                break;
                        }
             if (-f $request_filename) {
                  expires max;
                  break;
               }
if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; } } # include ci.conf; location ~ .*\.(php|php5)?$ { try_files $uri =404; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; include fcgi.conf; } location /index.php { fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_param SCRIPT_FILENAME /home/wwwroot/cy/index.php; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; include fcgi.conf; } # location ~ /index.php/ { # fastcgi_pass unix:/tmp/php-cgi.sock; # fastcgi_index index.php; # include fcgi.conf; # } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } access_log off; }

在Nginx下通过ci框架开发项目时,发现ci框架在nginx下是不能运行的,在网络上搜索了相关资料后可通过修改相关配置实现nginx支持PHP的ci框架。

1、修改ci框架的配置文件 config/config.php
修改$config['uri_protocol']值
改为:

$config['uri_protocol'] = 'PATH_INFO';

2、修改nginx配置文件,在SERVER段中添加如下代码:

location /index.php{
    fastcgi_pass  unix:/tmp/php-cgi.sock;
    fastcgi_param SCRIPT_FILENAME /home/wwwroot/index.php;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
    include fcgi.conf;
}

如果有多个应用,如:后台应用,可以多加一段以上代码,并修改相应入口文件:

location /admin.php{
    fastcgi_pass  unix:/tmp/php-cgi.sock;
    fastcgi_param SCRIPT_FILENAME /home/wwwroot/admin.php;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
    include fcgi.conf;
}

第一次访问的时候,我是这么访问

http://cy.com/index.php/admin

我有一个admin 的目录

---------------------------------

如果出现了 Access Denied

----------------------------------------------

请检查

1、 php.ini(/etc/php5/cgi/php.ini)的配置中这两项
cgi.fix_pathinfo=1  (这个是自己添加的)

目录
相关文章
|
28天前
|
编解码 应用服务中间件 Linux
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
centos配置nginx-rtmp实现ffmpeg转码rtsp为rtmp视频流
105 1
|
8天前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
104 18
|
10天前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
113 17
|
1月前
|
数据建模 应用服务中间件 PHP
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
本示例演示如何通过Docker挂载同一宿主目录至Nginx与PHP容器,实现PHP项目运行环境配置。需注意PHP容器中监听地址修改为0.0.0.0:9000,并调整Nginx配置中fastcgi_pass指向正确的IP与端口。同时确保Nginx容器中/var/www/html权限正确,以避免访问问题。
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
|
1月前
|
Ubuntu 应用服务中间件 Linux
在Ubuntu上配置Nginx实现开机自启功能
至此,Nginx应该已经被正确地设置为开机自启。在Ubuntu中利用 `systemd`对服务进行管理是一种高效的方式,为系统管理员提供了强大的服务管理能力,包括但不限于启动、停止、重启服务,以及配置服务的开机自启动。通过这些简洁的命令,即使是对Linux不太熟悉的用户也能轻松地进行配置。
105 0
|
6月前
|
应用服务中间件 nginx
Nginx进程配置指令详解
Nginx进程配置指令主要包括:`worker_processes`设置工作进程数;`worker_cpu_affinity`绑定CPU核心;`worker_rlimit_nofile`设置最大文件描述符数量;`worker_priority`设置进程优先级;`worker_connections`设置最大连接数;`daemon`控制守护进程模式;`master_process`启用主进程模式;`pid`设置PID文件路径;`user`指定用户和组;`error_log`配置错误日志。这些指令在`nginx.conf`中配置,用于优化和控制Nginx的运行行为。
301 10
|
缓存 运维 应用服务中间件
运维系列.Nginx配置中的高级指令和流程控制
运维系列.Nginx配置中的高级指令和流程控制
749 1
|
网络协议 应用服务中间件 nginx
Nginx的http块sendfile,keepalive_timeout的配置指令说明
Nginx的http块sendfile,keepalive_timeout的配置指令说明
|
Web App开发 应用服务中间件 nginx
Nginx 配置指令的执行顺序(学习笔记二十)
大多数 Nginx 新手都会频繁遇到这样一个困惑,那就是当同一个location配置块使用了多个 Nginx 模块的配置指令时,这些指令的执行顺序很可能会跟它们的书写顺序大相径庭。
1967 0
|
应用服务中间件 nginx
Nginx 配置指令的执行顺序(二)
我们前面已经知道,当 set 指令用在 location 配置块中时,都是在当前请求的 rewrite 阶段运行的。事实上,在此上下文中,ngx_rewrite 模块中的几乎全部指令,都运行在 rewrite 阶段,包括 Nginx 变量漫谈(二) 中介绍过的 rewrite 指令。
1352 0