在Nginx上配置ThinkPHP專案

2022-06-30 03:24:09 字數 1828 閱讀 5294

其實,要解決nginx不支援pathinfo的問題,有兩個解決思路,一是不使用pathinfo模式,二是修改nginx的配置檔案,使它支援pathinfo。為了使問題簡單化,我選擇了第一種方式,因為就第二種方式,我查了很多資料,發現大家的方法不盡相同,有的還差別很大,容易造成誤導,所以我選擇從簡出發,選擇普通模式,雖然有一定的風險。當把index.php對應的前台**修改完畢之後,發現前台基本正常,可是後台仍然出現重定向的問題。折騰了半天之後,我才想到看一下日誌檔案,原來是編輯器的問題,看來日誌檔案真的很重要,以前一直不重視。在config.php檔案的第一行出現了輸出,

在sublime下,一般會為utf-8檔案新增bom頭,這個bom頭在window下通常是看不見的,可以通過其他的編輯器檢視到,linux下也可以直接看到,通常顯示出來是乙個亂碼字元,把這個字元刪除即可,或者簡單一點,直接在第一行回車,再刪除就可以了。到這裡,後台基本可以訪問了。

有幾個小問題需要說明一下。

1.在登入的時候,我是通過外部js檔案傳送ajax請求進行驗證的,在js與thinkphp模組函式通訊遇到了點問題,一直不知道正確的路徑該怎麼寫,也沒有查到相關資料,只能各種試,好在找到了解決辦法,通過直接帶上入口檔名的方式,**如下

1

var url="system.php?m=login&a=dolog";

2 $.post(url,,function

(data)else

if(data=="authempty")else

if(data=="autherr")else

if(data=="success")

當然,此為普通模式下的訪問方式,如果是pathinfo的話,只需要把紅色部分如下修改即可

1

var url="dolog";

2 $.post(url,,function

(data)else

if(data=="authempty")else

if(data=="autherr")else

if(data=="success").xls");

3.在刪除檔案時會遇到路徑問題,因為專案中使用的較多的是相對路徑,即相對入口檔案而言,但是刪除檔案則需要使用絕對路徑,我並沒有找到合適的解決方法,只好用了比較保守的方式,**如下

1

$path="./public/uploads/";

2$path=str_replace("\\","/",realpath($path)."/"); //

獲取絕對路徑,並轉換分隔符

4.在配置nginx和php方面,我使用了fastcgi的方式,將如下**儲存為cmd檔案,直接點選執行就可以了

"f:\php\php-cgi.exe" -b 127.0.0.1:9000 -c "f:\php\php.ini"     //後面是php檔案的路徑
然後在nginx的配置檔案裡加上幾句話

1 location ~ \.php/?.*19#

配置fastcgi的一些引數

20 fastcgi_param script_filename $document_root$real_script_name

;21 fastcgi_param script_name $real_script_name

;22 fastcgi_param path_info $path_info

;23 }

Thinkphp在Nginx上的配置

thinkphp配置檔案 如果在nginx伺服器上,最好還是把 url model 2,設定上,不然出現的問題奇奇怪怪。最新更新,在看nginx文件的時候,發現它自帶有pathinfo的處理方法 syntax fastcgi split path inforegex default context ...

在IIS上配置nginx的try files

iis麼不多說了,後台也是第一次前端的mvvm框架配合開發。因為是.net的所以一直用的也是iis。沒辦法,我這小前端也來上前線打仗了。因為前端在本地的時候有本地的 所以一直沒問題,在伺服器上,是訪問不到localhost的,在頁面訪問不到的時候把頁面重定向到跟目錄就好了。首先想的是因為是重定向,就...

Nginx在Mac上的安裝配置

在mac上使用macport安裝和配置nginx非常方便,首先安裝nginx sudo port install nginx 安裝完成後啟動nginx會說沒有nginx.conf檔案,到 opt local etc nginx目錄下看到以下幾個檔案 fastcgi params.example ko...