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

    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  (这个是自己添加的)

  • 相关阅读:
    LeetCode T98.Validate Binary Search Tree/验证二叉搜索树
    LeetCode T45.Jump Game Ⅱ/跳跃游戏Ⅱ
    LeetCode T53.Maximum Subarray/最大子序和
    LeetCode T3.Longest Substring Without Repeating Characters/无重复最长子串
    LeetCode T21.Merge Two Sorted Lists/合并两个有序链表
    LeetCode T202.Happy Number/寻找快乐数
    LeetCode T1095.Find in Mountain Array/山脉数组中查找目标值
    XCTF-WEB—i-got-id-200:perl网页文件+ARGV上传造成任意文件读取
    思维导图爆破
    UNCTF2020-Reverse:re_checkin
  • 原文地址:https://www.cnblogs.com/jackluo/p/3185910.html
Copyright © 2020-2023  润新知