http://www.php.cn/php-weizijiaocheng-394360.html

本文主要给大家介绍了关于Nginx下ThinkPHP5的配置方法,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍:
url里public目录的隐藏
出于安全的考虑,TP5的入口文件改成放在public下了,因为这样的话能防止被恶意用户访问到“/thinkphp/”、“/vendor/”等等这些目录下的文件。所以当你以之前的习惯将网站documentroot配置为项目根目录的时候就会需要在url后面加上/public/来访问。当然可能也会有童鞋把入口文件放回到根目录下,然后还是以之前3.x版那样的形式访问了。
但是很显然,这么做并不是那么的科学。
假设项目目录为“/web/wwwroot/augsky.com”,那么我们在网站的nginx配置文件里面将root配置为:
root /web/wwwroot/augsky.com/public;
但是一定要记得将open_basedir设置为上一级项目的根目录下,不然应用会没有权限调用除public目录下的其他文件,网站会报500无法访问。(open_basedir的配置默认在php.ini里面,但如果是多个虚拟机环境的话有可能会在各个网站的user.ini文件里,这个要根据自己的实际情况来。)具体配置如下:
open_basedir=/web/wwwroot/augsky.com:/tmp/:/proc/
隐藏入口文件index.php:

 location /{try_files $uri $uri/ /index.php?s=$uri&$args;#如果请求不是文件或目录,则将uri交给index.php处理,同时保留参数}

说一下try_files:
try_files
语法: try_files file1 [file2 … filen] uri
OR
try_files file1 [file2 … filen] =code
默认值: 无
作用域: server location
try_files支持多个参数,每个参数代表一个文件,系统将按顺序检查这些文件是否存在,存在就直接执行,斜线“/”结尾代表目录,若都不存在,则会重定向到最后一个参数指向的文件或者返回指定的http状态码。
pathinfo配置
在配置文件里面增加这一段(如果你是lnmp一键包用户,请略过这一段往下翻):

 location ~ [^/]\.php(/|$) {set $path_info "";#定义变量 $real_script_name,用于存放真实地址set $real_script_name $fastcgi_script_name;#如果地址与引号内的正则表达式匹配if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {#将文件地址赋值给变量 $real_script_nameset $real_script_name $1;#将文件地址后的参数赋值给变量 $path_infoset $path_info $2;}#配置fastcgi的一些参数fastcgi_pass unix:/tmp/php-cgi.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;fastcgi_param SCRIPT_NAME $real_script_name;fastcgi_param PATH_INFO $path_info;include  fastcgi_params;
}

上面需要说明的是fastcgi_pass的设置,这个得根据你实际的php版本和安装目录来设定。
好,做完这些之后,保存,重启nginx和php就能生效了。如果你是lnmp一键包用户的话不用上面这样设置,往下面看:
lnmp一键包pathinfo的设置
其实lnmp一键包里面的pathinfo军哥已经都写好了,我们只需要把include enable-php.conf;修改成include enable-php-pathinfo.conf;然后重启lnmp就搞定了。
#include enable-php.conf;或者,你直接注释掉这一行,在下面添加新的一行
include enable-php-pathinfo.conf;
就是这样简单。下面顺便附上在url里隐藏模块的方法
url隐藏默认模块index
很简单,在入口文件里面定义常量BIND_MODULE为你使用的模块就好了,以默认的index为例:
1 define(‘BIND_MODULE’, ‘index’);
这样,在url里面不会在有模块名这一级目录了。要知道,层级少一些的url对SEO是有好处的。
下面是nginx里面location的匹配规则
Nginx location的匹配规则

~ 波浪线表示执行一个正则匹配,区分大小写

~* 表示执行一个正则匹配,不区分大小写

^~ ^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录

= 进行普通字符精确匹配

@ #"@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files

location 匹配优先级

= 精确匹配会第一个被处理。如果发现精确匹配,nginx停止搜索其他匹配。

普通字符匹配,正则表达式规则和长的块规则将被优先和查询匹配,也就是说如果该项匹配还需去看有没有正则表达式匹配和更长的匹配。

^~ 则只匹配该规则,nginx停止搜索其他匹配,否则nginx会继续处理其他location指令。

最后匹配理带有"“和”*"的指令,如果找到相应的匹配,则nginx停止搜索其他匹配;当没有正则表达式或者没有正则表达式被匹配的情况下,那么匹配程度最高的逐字匹配指令会被使用。

Nginx下ThinkPHP5的配置方法相关推荐

  1. nginx php 书籍,详细介绍Nginx下ThinkPHP5的配置方法

    Nginx下ThinkPHP5的配置方法详解 本文主要给大家介绍了关于Nginx下ThinkPHP5的配置方法,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍: url里public目录的 ...

  2. Linux下环境变量配置方法梳理(.bash_profile和.bashrc的区别)

    博客园 首页 新随笔 联系 管理 订阅 <div class="blogStats"><!--done--> 随笔- 556  文章- 38  评论- 77 ...

  3. java pathinfo,nginx下支持PATH_INFO的方法实例详解

    本文实例分析了nginx下支持PATH_INFO的方法.分享给大家供大家参考,具体如下: 要想让nginx支持PATH_INFO,首先需要知道什么是pathinfo,为什么要用pathinfo? pa ...

  4. Nginx下的https配置

    https: https(Secure Hypertext Transfer Protocol) 安全超文本传输协议 它是以安全为目标的http通道,即它是http的安全版,它使用安全套接字层(SSL ...

  5. win10+python3.6+tensorflow-cpu+keras+Pycharm环境下的tensorflow配置方法

    在pytorch成功配置的基础上,也尝试着把tensorflow和keras安装了一下. Win 10 Anaconda3-5.2.0-Windows-x86_64.exe python3.6 ten ...

  6. python3.6+pytorch-cpu+Pycharm环境下的PyTorch配置方法

    在踩了很多坑,好不容易安装成功后,想着整理总结一下,给后来人一个参考. 安装Anaconda 清华大学开源软件镜像站清华Anaconda安装包下载地址 链接进去选择自己需要的版本就可以下载了哈.这里我 ...

  7. 修改thinkphp配置nginx服务器,thinkphp5.0配置nginx重写规则

    thinkphp5.0配置nginx重写规则 2018年07月06日 09:29:03阅读数:1529 server { listen 80; #端口号 server_name demo.aa.com ...

  8. wnmp php5.2,laravel在nginx下的伪静态配置,运行环境:wnmp2.2.5/win7sp1旗舰版

    小弟新手,网上查了很多资料都没有解决,运行环境:wnmp2.2.5/win7sp1旗舰版,laravel在nginx下如何配置伪静态?现在只能访问http://localhost/,不能访问其他路由, ...

  9. [算是原创否?]Arch Linux 下的BRAS配置方法 (感谢hellwolf学长!)

    我们东南大学上校外网用的是所谓的BRAS服务,其实是一个L2TP协议的VPN连接,学校网站上明显鄙视LInux用户,配置方法半个字都没提到,昏. 以前在浦口用Ubuntu的时候参考了hellwolf学 ...

最新文章

  1. 用BRAT进行中文情感分析语料标注
  2. 对于图像分类任务,相对于全连接的DNN,CNN模型的主要优点有哪些?
  3. python文件输出中文_python文件输出
  4. Spring IOC(控制反转)思想笔记
  5. 目标检测——使用OpenCV读取图片要注意进行维度变换
  6. left join on or 优化_pandas中merge/join有什么区别?
  7. 2. Linear Model
  8. RedHat RealTime Kernel
  9. stm32c8t6之跑马灯程序配置
  10. Conficker.AE病毒局域网扫描工具
  11. vue 使用ace编辑器
  12. 凯立德地图导航2022年懒人包 安卓版
  13. 《国际学术论文写作与发表》课后题
  14. 万维网联盟将于2014年推出HTML5标准(四)
  15. 【转】高通平台android 环境配置编译及开发经验总结
  16. 一篇文章彻底搞懂海明码
  17. 小马哥robofly四轴代码解读:PWM电机输出
  18. B1072 开学寄语(python)
  19. 关于掉落的详细分析。
  20. 计算机二级第一次考试不及格有没有影响,计算机二级还没有过吗?

热门文章

  1. 英特尔的VT-d技术是什么?
  2. 手机python编程软件西西网-14.python-CS编程
  3. php 840.00,三菱变频器 FR-F800系列 FR-F840-00250-2-60 11KW变频器
  4. 关于nuxt不支持import解决方法
  5. 【*动漫江南stylewin7主题*】
  6. 7y30 linux,基于酷睿M3-7Y30:CHUWI 驰为 发布 CoreBook 二合一变形本
  7. 把matlab移动到另一个盘,乾坤大挪移,教你如何将程序从一个硬盘移到另一个硬盘...
  8. 即时通讯开发之网页端实时音视频技术WebRTC
  9. 五分钟看完 Linux 重点知识,建议收藏!
  10. 京东宝贝排名优化方法技巧 分享京东运营