thinkphp5 的 nginx 配置檔案

2021-10-03 07:39:50 字數 1399 閱讀 7478

今天在tp5高階群遇到人詢問tp5支援pathinfo的nginx配置怎麼寫的問題,

發了乙份配置檔案給管理員共享在群裡面了。

不過那份檔案裡面沒有做一些說明,

所以這裡做一下解釋。

下面是配置檔案的具體內容:

server 

location / if(

!-e $request_filename)}

location ~ .+\.php($|/)

fastcgi_pass unix:/run/php/php7.0-fpm.sock;

fastcgi_index index.php?if_rewrite=1;

fastcgi_param path_info $path_info

; fastcgi_param script_filename $root

$fastcgi_script_name

; fastcgi_param script_name $script

; include fastcgi_params;

}}

關於配置檔案的幾個需要關注的地方:

1,如果使用者沒有修改過 nginx 初始的 log 檔案路徑,那麼通常是在 /var/logs/nginx 目錄下,修改一下這個配置檔案中對應的部分即可;

2,配置檔案中做了動靜分離,但是考慮到開發環境經常需要變動靜態內容,所以沒有設定緩衝,如果需要的話,在靜態解析部分增加 expires 指令即可;

3,以上配置檔案在 debian / ubuntu 發行版中可以直接使用,如果是在 centos / gentoo 這樣的發行版中可能需要略作調整;

4,配置檔案中直接使用了 php7.0 的 fpm 方式,如果是 5.4/5.6 版本,對應修改一下 fastcgi_pass 的引數,需要提醒的是 5.4/5.6 的 .sock 很可能路徑是在 /run 下面,而不是 /run/php 下面。

#cd /etc/nginx/sites-enabled

#nginx -s reload

就可以生效了。

=華麗的分割線

=2016-7-13補充:

在新版的nginx下面,上面的配置會出現一點問題,主要是 path_info 在某些情況下會取到錯誤的值,導致 tp5 框架誤認為模組名為 『e』。

下面提供的是最新版本的配置檔案,適用於最新版的 nginx。實測已經解決了這個問題。

server 

location / if(

!-e $request_filename)}

location ~ .+\.php($|/)

}

Thinkphp5 在nginx環境下的配置問題

首先thinkphp5目錄指向到webroot public目錄下。thinkphp的url訪問 http servername index.php 或者其它應用入口檔案 模組 控制器 操作 引數名 引數值 這個需要支援pathinfo,apache預設支援,而nginx不支援。首先在php.ini...

ThinkPHP5使用快取

cache 使用復合快取型別 type complex 預設使用的快取 default 驅動方式 type file 在這設定換人的快取方式 快取儲存目錄 path cache path,檔案快取 file 驅動方式 type file 設定不同的快取儲存目錄 path runtime path f...

thinkphp5內建標籤

知道內建標籤怎麼用,查手冊的時候好查 卻功能的時候在裡面找著來用 1 內建標籤23 變數輸出使用普通標籤就足夠了,但是要完成其他的控制 迴圈和判斷功能,就需要借助模板引擎的標籤庫 4功能了,系統內建標籤庫的所有標籤無需引入標籤庫即可直接使用。5內建標籤包括 6標籤名作用包含屬性 7include 包...