亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Nginx下ThinkPHP5的配置方法詳解

 更新時(shí)間:2017年08月01日 10:51:25   作者:體驗(yàn)盒子  
今天有個(gè)朋友詢問tp5支持pathinfo的nginx配置怎么寫的問題,所以想著自己總結(jié)分享下,下面這篇文章主要給大家介紹了關(guān)于在Nginx下ThinkPHP5的配置方法,需要的朋友可以參考借鑒,下面話不多說,來一起看看吧。

本文主要給大家介紹了關(guān)于Nginx下ThinkPHP5的配置方法,分享出來供大家參考學(xué)習(xí),下面話不多說,來一起看看詳細(xì)的介紹:

url里public目錄的隱藏

出于安全的考慮,TP5的入口文件改成放在public下了,因?yàn)檫@樣的話能防止被惡意用戶訪問到“/thinkphp/”、“/vendor/”等等這些目錄下的文件。所以當(dāng)你以之前的習(xí)慣將網(wǎng)站documentroot配置為項(xiàng)目根目錄的時(shí)候就會(huì)需要在url后面加上/public/來訪問。當(dāng)然可能也會(huì)有童鞋把入口文件放回到根目錄下,然后還是以之前3.x版那樣的形式訪問了。

但是很顯然,這么做并不是那么的科學(xué)。

假設(shè)項(xiàng)目目錄為“/web/wwwroot/augsky.com”,那么我們在網(wǎng)站的nginx配置文件里面將root配置為:

root /web/wwwroot/augsky.com/public;

但是一定要記得將open_basedir設(shè)置為上一級項(xiàng)目的根目錄下,不然應(yīng)用會(huì)沒有權(quán)限調(diào)用除public目錄下的其他文件,網(wǎng)站會(huì)報(bào)500無法訪問。(open_basedir的配置默認(rèn)在php.ini里面,但如果是多個(gè)虛擬機(jī)環(huán)境的話有可能會(huì)在各個(gè)網(wǎng)站的user.ini文件里,這個(gè)要根據(jù)自己的實(shí)際情況來。)具體配置如下:

open_basedir=/web/wwwroot/augsky.com:/tmp/:/proc/

隱藏入口文件index.php:

location /
  {
    try_files $uri $uri/ /index.php?s=$uri&$args;
    #如果請求不是文件或目錄,則將uri交給index.php處理,同時(shí)保留參數(shù)
  }

說一下try_files:

try_files
語法: try_files file1 [file2 ... filen] uri
     OR
  try_files file1 [file2 ... filen] =code
默認(rèn)值: 無
作用域: server location

try_files支持多個(gè)參數(shù),每個(gè)參數(shù)代表一個(gè)文件,系統(tǒng)將按順序檢查這些文件是否存在,存在就直接執(zhí)行,斜線“/”結(jié)尾代表目錄,若都不存在,則會(huì)重定向到最后一個(gè)參數(shù)指向的文件或者返回指定的http狀態(tài)碼。

pathinfo配置

在配置文件里面增加這一段(如果你是lnmp一鍵包用戶,請略過這一段往下翻):

location ~ [^/]\.php(/|$) {
  set $path_info "";
  #定義變量 $real_script_name,用于存放真實(shí)地址
  set $real_script_name $fastcgi_script_name;
  #如果地址與引號內(nèi)的正則表達(dá)式匹配
  if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
  #將文件地址賦值給變量 $real_script_name
  set $real_script_name $1;
  #將文件地址后的參數(shù)賦值給變量 $path_info
  set $path_info $2;
  }
  #配置fastcgi的一些參數(shù)
  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的設(shè)置,這個(gè)得根據(jù)你實(shí)際的php版本和安裝目錄來設(shè)定。

好,做完這些之后,保存,重啟nginx和php就能生效了。如果你是lnmp一鍵包用戶的話不用上面這樣設(shè)置,往下面看:

lnmp一鍵包pathinfo的設(shè)置

其實(shí)lnmp一鍵包里面的pathinfo軍哥已經(jīng)都寫好了,我們只需要把include enable-php.conf;修改成include enable-php-pathinfo.conf;然后重啟lnmp就搞定了。

#include enable-php.conf;或者,你直接注釋掉這一行,在下面添加新的一行
include enable-php-pathinfo.conf;

就是這樣簡單。下面順便附上在url里隱藏模塊的方法

url隱藏默認(rèn)模塊index

很簡單,在入口文件里面定義常量BIND_MODULE為你使用的模塊就好了,以默認(rèn)的index為例:

define('BIND_MODULE', 'index');

這樣,在url里面不會(huì)在有模塊名這一級目錄了。要知道,層級少一些的url對SEO是有好處的。

下面是nginx里面location的匹配規(guī)則

Nginx location的匹配規(guī)則

  • ~ 波浪線表示執(zhí)行一個(gè)正則匹配,區(qū)分大小寫
  • ~* 表示執(zhí)行一個(gè)正則匹配,不區(qū)分大小寫
  • ^~ ^~表示普通字符匹配,如果該選項(xiàng)匹配,只匹配該選項(xiàng),不匹配別的選項(xiàng),一般用來匹配目錄
  • = 進(jìn)行普通字符精確匹配
  • @ #"@" 定義一個(gè)命名的 location,使用在內(nèi)部定向時(shí),例如 error_page, try_files

location 匹配優(yōu)先級

  • = 精確匹配會(huì)第一個(gè)被處理。如果發(fā)現(xiàn)精確匹配,nginx停止搜索其他匹配。
  • 普通字符匹配,正則表達(dá)式規(guī)則和長的塊規(guī)則將被優(yōu)先和查詢匹配,也就是說如果該項(xiàng)匹配還需去看有沒有正則表達(dá)式匹配和更長的匹配。
  • ^~ 則只匹配該規(guī)則,nginx停止搜索其他匹配,否則nginx會(huì)繼續(xù)處理其他location指令。
  • 最后匹配理帶有"~"和"~*"的指令,如果找到相應(yīng)的匹配,則nginx停止搜索其他匹配;當(dāng)沒有正則表達(dá)式或者沒有正則表達(dá)式被匹配的情況下,那么匹配程度最高的逐字匹配指令會(huì)被使用。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持

相關(guān)文章

  • php中創(chuàng)建和調(diào)用webservice接口示例

    php中創(chuàng)建和調(diào)用webservice接口示例

    這篇文章主要介紹了php中創(chuàng)建和調(diào)用webservice接口示例,包括webservice基本知識、webservice服務(wù)端例子、webservice客戶端例子,需要的朋友可以參考下
    2014-07-07
  • 微信支付開發(fā)告警通知實(shí)例

    微信支付開發(fā)告警通知實(shí)例

    本篇文章主要介紹微信支付中如何獲得告警通知,并附有實(shí)例代碼以便參考,希望能幫助開發(fā)微信支付的小伙伴
    2016-07-07
  • thinkPHP5框架接口寫法簡單示例

    thinkPHP5框架接口寫法簡單示例

    這篇文章主要介紹了thinkPHP5框架接口寫法,結(jié)合實(shí)例形式分析了thinkPHP5框架數(shù)據(jù)處理接口的具體實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-08-08
  • ThinkPHP+EasyUI之ComboTree中的會(huì)計(jì)科目樹形菜單實(shí)現(xiàn)方法

    ThinkPHP+EasyUI之ComboTree中的會(huì)計(jì)科目樹形菜單實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄猅hinkPHP+EasyUI之ComboTree中的會(huì)計(jì)科目樹形菜單實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • thinkPHP5框架auth權(quán)限控制類與用法示例

    thinkPHP5框架auth權(quán)限控制類與用法示例

    這篇文章主要介紹了thinkPHP5框架auth權(quán)限控制類與用法,結(jié)合實(shí)例形式分析了thinkPHP5框架擴(kuò)展auth權(quán)限控制類的定義與使用方法,代碼注釋中備有較為詳盡的使用說明與數(shù)據(jù)庫操作語句,需要的朋友可以參考下
    2018-06-06
  • Laravel最佳分割路由文件(routes.php)的方式

    Laravel最佳分割路由文件(routes.php)的方式

    本文是一篇關(guān)于Laravel分割路由文件(routes.php)的最佳方式教程文章,內(nèi)容介紹的很詳細(xì),學(xué)習(xí)Laravel的小伙伴可以參考學(xué)習(xí)。
    2016-08-08
  • php的常量和變量實(shí)例詳解

    php的常量和變量實(shí)例詳解

    這篇文章主要介紹了php的常量和變量實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Laravel中使用自己編寫類庫的3種方法

    Laravel中使用自己編寫類庫的3種方法

    這篇文章主要介紹了Laravel中使用自己編寫類庫的3種方法,本文講解了增加可直接實(shí)例化的類、增加可直接調(diào)用的函數(shù)、增加稍微復(fù)雜的類庫三種方式,需要的朋友可以參考下
    2015-02-02
  • yii中widget的用法

    yii中widget的用法

    這篇文章主要介紹了yii中widget的用法,實(shí)例分析了widget在視圖中的調(diào)用方法以及定義方法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-12-12
  • PHP第三方登錄—QQ登錄實(shí)現(xiàn)方法

    PHP第三方登錄—QQ登錄實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄狿HP第三方登錄—QQ登錄實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02

最新評論