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内置变量。
分享到:
相关推荐
描述中提到,“本代码采用thinkphp5.1”,ThinkPHP5.1是ThinkPHP框架的一个版本,它提供了强大的MVC(Model-View-Controller)模式,方便开发者进行快速的Web应用开发。它具有丰富的中间件、服务容器、事件系统以及...
1. 应用目录结构:ThinkPHP5.1有明确的目录结构,如app(应用目录)、config(配置目录)、public(公共目录)、runtime(运行时目录)等,易于理解和管理。 2. 控制器(Controller):处理用户请求,调用模型进行...
在使用TP5连接达梦数据库时,确保PHPStudy中的PHP版本与ThinkPHP 5.1兼容,并正确配置了PHP扩展,例如PDO_Dm或Dm驱动,以便能够与达梦数据库通信。 总结来说,通过ThinkPHP 5.1框架,开发者可以方便地连接并操作...
本文将详细阐述如何在ThinkPHP5.1环境下,集成Oracle数据库进行API开发。 一、环境准备 1. PHP环境:首先,你需要一个PHP运行环境,这里推荐使用PHPStudy。PHPStudy集成了多种版本的PHP和MySQL等数据库,且包含...
nginx容器兼容thinkphp框架配置文件
Nginx配置ThinkPHP框架 ...............
近日选用phpstudy nginx 测试本地项目,thinkphp5.1 url(‘index/login/login’)生成路径访问时不包含index.php,结果报404错误,按官网文档加URL重写代码,但不知道加在哪(大实话,呵呵愚笨),于是在面板上找到...
安装环境推荐PHP7.0版本以上 + Apache(Nginx也可以)-》安装后项目运行的最低php版本支持5.6以上 网站入口请部署至public文件夹下(即 99Blog/public 目录下) 运行安装目录,运行 http://域名/install(例如:...
ThinkPHP5.1框架本身提供了相应的安全机制,如自动过滤非法输入,但开发者仍需保持警惕,遵循最佳安全实践。 七、部署与上线 完成开发后,项目需经过测试并部署到服务器。可能涉及的环节有:配置服务器环境(PHP、...
在这个系统中,开发者可能使用ThinkPHP5.1的路由功能来组织URL,使用模型来操作数据库,视图用于展示数据,而控制器作为模型和视图之间的桥梁,处理用户的请求。BootStrap则用于构建用户界面,提供布局、表单、导航...
### 综合电子商务系统多用户B2B2C商城源码Thinkphp5.1内核 #### 一、综合电子商务系统的定义与特点 综合电子商务系统是指一个集成多种电子商务模式(如B2B、B2C等)的多功能平台。此类系统能够支持多种交易方式,...
FastAdmin 完全升级 thinkphp5.1 fastadmin: 1.0.0.20190418_beta thinkphp: 5.1.38 LTS 安装使用 环境要求 PHP >= PHP7.1 Mysql >= 5.5.0 (需支持innodb引擎) Apache 或 Nginx PDO PHP Extension MBstring ...
HisiPHP V2版 基于ThinkPHP5.1 + layui开发的一套开源PHP快速开发框架,默认集成了权限管理、模块管理、插件管理、钩子管理、数据库管理等常用功能,以方便开发者快速构建自己的应用,我们在发布第一个版本就为您...
ThinkPHP5.1 已经出现很久了,最近有所接触,下面介绍一下常用的第三方验证码功能的使用。 环境 框架版本: ThinkPHP5.1.2 运行环境: CentOS7.2、phpStudy2017、Nginx ♜ 功能开发 1).引入第三方扩展包 进行 TP...
快乐聊天 happychat全新大升级,旧版本请到发布中下载。 体验地址 如何使用 ... 1,根目录在公共2,记得nginx下配置重写规则 location / { if (!-e $ request_filename ) { rewrite ^( . *) $ /i
在Ubuntu系统下配置Nginx通常涉及编辑/etc/nginx/sites-available目录下的配置文件,默认通常是default文件。需要在相应的location块中添加重写规则来支持PATH_INFO。 4. Nginx配置文件中的location块: location块...
基于docker的thinkphp5框架的lnmp开发环境 mysql默认端口为:`33060` nginx默认端口为:`8080` redis默认端口为:`63790` 具体配置可修改根目录`.env`文件 docker-compose up --build -d #构建并后台执行
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...
- **负载均衡**:在高并发环境下,可能需要部署多台服务器,通过Nginx或者其他负载均衡器分发请求。 - **日志记录**:合理记录和分析GatewayWorker的日志,有助于排查问题和优化性能。 总的来说,ThinkPHP5集成...
Swoole+Thinkphp5.1 制作赛事图文直播 :rocket: 基于Swoole加速Thinkphp,Swoole代替PHP-FPM起飞 特性 内置Http/WebSocket服务器 常驻内存 实时推送 在线聊天室 异步的任务队列 毫秒级定时任务 平滑Reload 支持...