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

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框架。php

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

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

二、修改nginx配置文件,在SERVER段中添加以下代码:html

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;
}

若是有多个应用,如:后台应用,能够多加一段以上代码,并修改相应入口文件:nginx

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 的目录spa

---------------------------------unix

若是出现了 Access Deniedcode

----------------------------------------------server

请检查

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

相关文章
相关标签/搜索