欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

nginx下的CodeIgniter 3.1 的最佳配置 博客分类: PHP nginxCodeIgniter 

程序员文章站 2024-03-14 23:27:23
...
nginx下 CodeIgniter 3.1 的最佳配置

这是本人原创,转载请注明出处。

网上搜了好久,也没找到,还是得自己弄。
这其中的重要原因是:竟然,官网没有给nginx的配置??
thinkphp 5 ,laravel 5,yii 2,人家的官网都是给 nginx的配置的。
但是 CodeIgniter 真没有。

经本人实际测试的最佳配置如下,和thinkphp5.1 的最佳配置一样的。
特别说明,按照本文的配置,不需要修改php.ini,极为方便。

server {
    listen   80 ;
    server_name  www.d8.com;

    root /var/www/citest;
    index index.php index.html;
    location / {
         try_files  $uri   /index.php$uri$is_args$args; 
    }
    
    # 这行设置使得3个目录被禁止url直接访问。很安全。
    location ~ ^/(application|system|user_guide) {
          deny all;
    }

    location ~ \.php {
        include fastcgi_params;
        fastcgi_pass   php72-fpm:9000;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_split_path_info  ^(.+\.php)(/.*)$;
        fastcgi_param  PATH_INFO $fastcgi_path_info; 
    }
}


这里再说明一下,这是本人实测的结果。
分两种,一种是url中带index.php,一种是url中没有index.php
另外,根据是否有控制器文件夹,也都试过了。
还有,我没有修改默认的路由设置。

我测试的url包括:
http://www.d8.com/index.php/path1/path2/path3?aa=4
http://www.d8.com/path1/path2/path3?aa=4
http://www.d8.com/index.php/pages/view/about3?aa=4
http://www.d8.com/pages/view/about3?aa=4
全部显示成功,全部都有$_GET的值。
前面两个url我建立了application/ path1 这个文件夹,控制器是Path2.php
后两个url是直接在controller下建立了Pages.php 作为控制器。
全部通过!

唯一和thinkphp 的最佳配置的小小差异是,这里添加了对3个目录的直接访问。
因为 ci 默认下载的 类库,把index.php放在最外层了。这样设置的话,就很安全了。


妈妈再也不用担心我找不到 CodeIgniter 3.1 的合适的 nginx 的配置了!




















相关标签: nginx CodeIgniter