`
xieye
  • 浏览: 831360 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

nginx下的thinkphp5.1的最佳配置

    博客分类:
  • PHP
阅读更多
nginx下的thinkphp5.1的最佳配置

本文主要参考了:
https://blog.csdn.net/tinico/article/details/18033573
但有两处改动。

特别说明,按照本文的配置,不需要修改php.ini,极为方便。

thinkphp5.1的官网文档推荐的配置:
location / { // …..省略部分代码
   if (!-e $request_filename) {
   rewrite  ^(.*)$  /index.php?s=/$1  last;
    }
}
官网之所以这么写,是想照顾很多老版本的nginx,但新安装linux的同学大可不必如此。

thinkphp5.1官网推荐配置
按照官网要求做的全部配置代码:
server {
    listen   80 ;
    server_name  www.d5.com;
    root /var/www/tptest/public;
    index index.php index.html ;
    location / {
       if (!-e $request_filename) {
           rewrite  ^(.*)$  /index.php?s=/$1  last;
       }
    }
    location ~ \.php {
        include fastcgi_params;
        fastcgi_pass   php72-fpm:9000;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  PATH_INFO  $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
    }
}

php代码如下:
/var/www/tptest/application/path1/controller/Ctest.php
<?php
namespace app\path1\controller;

class Ctest
{
    public function index()
    {
        return 'ctest ,index';
    }

    public function hello($name = 'ThinkPHP5')
    {
        return 'hello,' . $name.'<hr>'.var_export( $_GET,1 );
    }
}

使用网址测试:
http://www.d5.com/path1/ctest/hello/name/ppp?aa=33
显示
hello,ppp
array ( 'aa' => '33', )
全部ok

然而,这种写法真的太过时了,

好的 nginx 配置应该是:

server {
    listen   80 ;
    server_name  www.d6.com;
    access_log /var/log/nginx/access.log main2;
    root /var/www/tptest/public;
    index index.php index.html ;
    location / {
       try_files  $uri  /index.php$uri$is_args$args;
    }
    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;
    }
}
如上面的配置文件写法更加直观。try_files 指令实际是对if的包装。之所以nginx推出这个指令,就是希望用户配置时能简单一些。

亲测成功,和参考网址文章的差异是:
1、加了一行SCRIPT_FILENAME 的配置,不加好像不行。
2、try_files那行加了args这个nginx内置变量。

0
0
分享到:
评论

相关推荐

    thinkphp5.1完美集成gatewayworker

    描述中提到,“本代码采用thinkphp5.1”,ThinkPHP5.1是ThinkPHP框架的一个版本,它提供了强大的MVC(Model-View-Controller)模式,方便开发者进行快速的Web应用开发。它具有丰富的中间件、服务容器、事件系统以及...

    thinkphp5.1完整版

    1. 应用目录结构:ThinkPHP5.1有明确的目录结构,如app(应用目录)、config(配置目录)、public(公共目录)、runtime(运行时目录)等,易于理解和管理。 2. 控制器(Controller):处理用户请求,调用模型进行...

    tp5(ThinkPHP 5.1)连接达梦数据库源码

    在使用TP5连接达梦数据库时,确保PHPStudy中的PHP版本与ThinkPHP 5.1兼容,并正确配置了PHP扩展,例如PDO_Dm或Dm驱动,以便能够与达梦数据库通信。 总结来说,通过ThinkPHP 5.1框架,开发者可以方便地连接并操作...

    thinkphp5.1+oracle安装包.zip

    本文将详细阐述如何在ThinkPHP5.1环境下,集成Oracle数据库进行API开发。 一、环境准备 1. PHP环境:首先,你需要一个PHP运行环境,这里推荐使用PHPStudy。PHPStudy集成了多种版本的PHP和MySQL等数据库,且包含...

    nginx容器兼容thinkphp框架配置文件

    nginx容器兼容thinkphp框架配置文件

    Nginx配置ThinkPHP框架

    Nginx配置ThinkPHP框架 ...............

    thinkphp5.1 在phpstudy nginx 隐藏index.php 问题(已解决)

    近日选用phpstudy nginx 测试本地项目,thinkphp5.1 url(‘index/login/login’)生成路径访问时不包含index.php,结果报404错误,按官网文档加URL重写代码,但不知道加在哪(大实话,呵呵愚笨),于是在面板上找到...

    thinkphp5.1 + layui的CMS系统

    安装环境推荐PHP7.0版本以上 + Apache(Nginx也可以)-》安装后项目运行的最低php版本支持5.6以上 网站入口请部署至public文件夹下(即 99Blog/public 目录下) 运行安装目录,运行 http://域名/install(例如:...

    基于ThinkPHP5.1打造的o2o商户系统(项目实战).zip

    ThinkPHP5.1框架本身提供了相应的安全机制,如自动过滤非法输入,但开发者仍需保持警惕,遵循最佳安全实践。 七、部署与上线 完成开发后,项目需经过测试并部署到服务器。可能涉及的环节有:配置服务器环境(PHP、...

    基于PHP的SIYUCMS基于ThinkPHP5.1+BootStrap开发的CMS内容管理系统源码.zip

    在这个系统中,开发者可能使用ThinkPHP5.1的路由功能来组织URL,使用模型来操作数据库,视图用于展示数据,而控制器作为模型和视图之间的桥梁,处理用户的请求。BootStrap则用于构建用户界面,提供布局、表单、导航...

    综合电子商务系统多用户B2B2C商城源码Thinkphp5.1内核.txt

    ### 综合电子商务系统多用户B2B2C商城源码Thinkphp5.1内核 #### 一、综合电子商务系统的定义与特点 综合电子商务系统是指一个集成多种电子商务模式(如B2B、B2C等)的多功能平台。此类系统能够支持多种交易方式,...

    fastadmin-thinkphp5.1:ThinkPHP 5.1.38 LTS的fastadmin

    FastAdmin 完全升级 thinkphp5.1 fastadmin: 1.0.0.20190418_beta thinkphp: 5.1.38 LTS 安装使用 环境要求 PHP &gt;= PHP7.1 Mysql &gt;= 5.5.0 (需支持innodb引擎) Apache 或 Nginx PDO PHP Extension MBstring ...

    HisiPHP V2版是基于ThinkPHP5.1和Layui开发的开源PHP后台框架

    HisiPHP V2版 基于ThinkPHP5.1 + layui开发的一套开源PHP快速开发框架,默认集成了权限管理、模块管理、插件管理、钩子管理、数据库管理等常用功能,以方便开发者快速构建自己的应用,我们在发布第一个版本就为您...

    ThinkPHP5.1验证码功能实现的示例代码

    ThinkPHP5.1 已经出现很久了,最近有所接触,下面介绍一下常用的第三方验证码功能的使用。 环境 框架版本: ThinkPHP5.1.2 运行环境: CentOS7.2、phpStudy2017、Nginx ♜ 功能开发 1).引入第三方扩展包 进行 TP...

    HappyChat:采用thinkphp5.1 + phpsocket.io + layui实现的高性能,高兼容性的匿名实时聊天室

    快乐聊天 happychat全新大升级,旧版本请到发布中下载。 体验地址 如何使用 ... 1,根目录在公共2,记得nginx下配置重写规则 location / { if (!-e $ request_filename ) { rewrite ^( . *) $ /i

    Nginx配置支持ThinkPHP的PATH_INFO

    在Ubuntu系统下配置Nginx通常涉及编辑/etc/nginx/sites-available目录下的配置文件,默认通常是default文件。需要在相应的location块中添加重写规则来支持PATH_INFO。 4. Nginx配置文件中的location块: location块...

    基于docker的thinkphp5框架的lnmp开发环境

    基于docker的thinkphp5框架的lnmp开发环境 mysql默认端口为:`33060` nginx默认端口为:`8080` redis默认端口为:`63790` 具体配置可修改根目录`.env`文件 docker-compose up --build -d #构建并后台执行

    TP5.1框架(thinkphp_5.1.0_rc官方版)

    ThinkPHP5.1版本的swoole: https://github.com/top-think/think-swoole 但是还有一些不完善的地方: 1.比如swoole中session中的运用: https://github.com/top-think/think-swoole/issues/39 2.在swoole中isAjax...

    ThinkPHP5集成GatewayWorker

    - **负载均衡**:在高并发环境下,可能需要部署多台服务器,通过Nginx或者其他负载均衡器分发请求。 - **日志记录**:合理记录和分析GatewayWorker的日志,有助于排查问题和优化性能。 总的来说,ThinkPHP5集成...

    swoole-live-demo:学习swoole的demo,将thinkphp与swoole整合,并且做了一些在线图文以及在线聊天室的功能

    Swoole+Thinkphp5.1 制作赛事图文直播 :rocket: 基于Swoole加速Thinkphp,Swoole代替PHP-FPM起飞 特性 内置Http/WebSocket服务器 常驻内存 实时推送 在线聊天室 异步的任务队列 毫秒级定时任务 平滑Reload 支持...

Global site tag (gtag.js) - Google Analytics