在Nginx上部署ThinkPHP專案教程

2022-10-05 04:12:12 字數 1824 閱讀 4430

前段時間用apache配合tp開發了乙個小型**,也算是我使用tp的第一次實戰。我習慣使用pathinfo模式,本地執行一切正常,然而部署到伺服器上時,由於對方使用的是nginx,預設是不支援thinkphp的pathinfo模式,所以導致路徑錯誤,出現了頁面迴圈跳轉的問題,於是就把nginx**下來在本地親自測試。

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

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

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

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

複製** **如下:

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

$.post(url,,function(data)else if(data=="authempty")else if(data=="autherr")else if(data=="success")

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

複製** **如下:

var url="dolog";

$.post(url,,function(data)else if(data=="authempty")else if(data=="autherr")else if(data=="success").xls");

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

複製** **如下:

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

$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的配置檔案裡加上幾句話

複製** **如下:

location ~ \.php/?.*

#配置fastcgi的一些引數

fastcgi_param script_filename $document_root$real_script_name;

fastcgi_param script_name $real_script_name;

fastcgi_param path_info $path_info;

}本文標題: 在nginx上部署thinkphp專案教程

本文位址:

如何用nginx在linux上部署專案

1.將專案打包在專案的根目錄輸入命令ng build prod 會在根目錄下生成乙個dist資料夾,就是打包的檔案2.安裝nginx 如果linux伺服器上有則跳過 自行安裝即可3.將打包檔案複製到linux的 usr local ngweb下 4.配置nginx,在conf nginx.conf目...

nginx 上部署react專案

1 npm run build 構建成功之後,會生成乙個dist資料夾,這個資料夾裡的靜態檔案,就是我們的專案訪問檔案了。2 nginx.conf server location assets error page 500 502 503 504 500.html client max body s...

Tomcat在Linux上部署

第一步 關閉tomcat服務 usr local apache tomcat bin shutdown.sh 第二步 部署專案檔案 1.備份 usr local filename 2.工程上傳到部署目錄中 覆蓋掉原來的,或者先把原來的工程刪了 3.將件配置檔案 conf dev filename 下...