久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Nginx下ThinkPHP5的配置方法詳解

今天有個朋友詢問tp5支持pathinfo的nginx配置怎么寫的問題,所以想著自己總結分享下,下面這篇文章主要給大家介紹了關于在Nginx下ThinkPHP5的配置方法,需要的朋友可以參考借鑒,下面話

本文主要給大家介紹了關于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_name
  set $real_script_name $1;
  #將文件地址后的參數賦值給變量 $path_info
  set $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為例:

define('BIND_MODULE', 'index');

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

下面是nginx里面location的匹配規則

Nginx location的匹配規則

  • ~ 波浪線表示執行一個正則匹配,區分大小寫
  • ~* 表示執行一個正則匹配,不區分大小寫
  • ^~ ^~表示普通字符匹配,如果該選項匹配,只匹配該選項,不匹配別的選項,一般用來匹配目錄
  • = 進行普通字符精確匹配
  • @ #"@" 定義一個命名的 location,使用在內部定向時,例如 error_page, try_files

location 匹配優先級

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

總結

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

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了thinkphp5.0驗證類的簡單有效的使用方法,一起學習下。
本文主要講了thinkphp5.0版本中自定義驗證規則的使用方法和一些注意事項。
這篇文章主要為大家詳細介紹了thinkPHP5使用laypage分頁插件實現列表分頁功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
這篇文章主要介紹了Thinkphp5+PHPExcel實現批量上傳表格數據功能,需要的朋友可以參考下
本文是thinkphp開發系列文章中關于使用七牛云儲存的方法和具體實例,非常的簡單,有需要的小伙伴可以參考下
本篇文章主要介紹了淺談thinkphp5 instance 的簡單實現,具有一定的參考價值,感興趣的小伙伴們可以參考一下
主站蜘蛛池模板: 成人av免费看 | www成人免费视频 | 久久精品视频亚洲 | 久久久久久国产精品免费免费 | 天天爽综合网 | 欧美日韩国产高清 | 亚洲一区二区av | 亚洲国产成人精品女人 | 天天射影院 | www.中文字幕.com | 国产精品久久久久无码av | av香蕉 | www.日本精品 | 视频二区在线观看 | 蜜桃传媒av | 精品国产免费人成在线观看 | 久久综合九九 | 亚洲国产精品久久久久秋霞不卡 | 97精品国产97久久久久久免费 | 亚洲成人国产 | 日韩精品一区二区三区在线播放 | 91精品久久久久久久久中文字幕 | 欧美精品一区二区三区蜜桃视频 | 国产一区二区久久 | 亚洲国产精品成人久久久 | 欧美视频网 | 精品国产99| 成人免费看电影 | 日日操夜夜摸 | 亚洲一二三区不卡 | 青青久久久 | 精品久久久久久久 | 中文字幕免费视频 | 亚洲一区二区在线 | 久久久久一区二区三区四区 | 亚洲精品二区 | 人人射人人 | 99tv成人影院 | 精品美女在线观看 | 国产精品久久久久久久午夜片 | 久久99精品久久久久久国产越南 |