国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB服務 > 正文

在Nginx上部署ThinkPHP 解決Pathinfo問題

2020-03-22 16:49:12
字體:
來源:轉載
供稿:網友
  • 其實,要解決nginx不支持pathinfo的問題,有兩個解決思路,一是不使用pathinfo模式,二是修改nginx的配置文件,使它支持pathinfo。為了使問題簡單化,我選擇了第一種方式,因為就第二種方式,我查了很多資料,發現大家的方法不盡相同,有的還差別很大,容易造成誤導,所以我選擇從簡出發,選擇普通模式,雖然有一定的風險。當把index.php對應的前臺代碼修改完畢之后,發現前臺基本正常,可是后臺仍然出現重定向的問題。折騰了半天之后,我才想到看一下日志文件,原來是編輯器的問題,看來日志文件真的很重要,以前一直不重視。在config.php文件的第一行出現了輸出,


    在sublime下,一般會為UTF-8文件添加BOM頭,這個BOM頭在window下通常是看不見的,可以通過其他的編輯器查看到,Linux下也可以直接看到,通常顯示出來是一個亂碼字符,把這個字符刪除即可,或者簡單一點,直接在第一行回車,再刪除就可以了。到這里,后臺基本可以訪問了。

    有幾個小問題需要說明一下(參考:http://www.lai18.com/content/368727.html

    1.在登錄的時候,我是通過外部js文件發送Ajax請求進行驗證的,在js與ThinkPHP模塊函數通信遇到了點問題,一直不知道正確的路徑該怎么寫,也沒有查到相關資料,只能各種試,好在找到了解決辦法,通過直接帶上入口文件名的方式,代碼如下

    var url="system.php?m=Login&a=doLog"; $.post(url,{"staffname":$staffname,"staffpwd":$staffpwd,"verifycode":$verifycode},function(data){     if(data=="codeerr"){           alert("驗證碼錯誤!");     }else if(data=="authempty"){           alert("請輸入用戶名或密碼!")     }else if(data=="autherr"){           alert("用戶名或密碼錯誤!");     }else if(data=="success"){           alert("登錄成功!");            location.href="system.php?m=Index&a=index";   //訪問首頁     }

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

    var url="doLog"; $.post(url,{"staffname":$staffname,"staffpwd":$staffpwd,"verifycode":$verifycode},function(data){       if(data=="codeerr"){               alert("驗證碼錯誤!");       }else if(data=="authempty"){               alert("請輸入用戶名或密碼!")       }else if(data=="autherr"){               alert("用戶名或密碼錯誤!");       }else if(data=="success"){               alert("登錄成功!");               location.href="../Index/index";   //跳轉首頁,訪問其他模塊的方法

    2.下載文件的時候,總是莫名多出許多html的東西,原因是緩沖區沒有清空,可以通過以下代碼進行修改,不過這種方式實際上是下載的仍然是html格式的文件,只不過改了一下后綴名為xls而已,因而用excel打開的時候會提示格式問題,忽略即可。同時需要注意使用 icov()函數轉換編碼,因為xls默認編碼格式并非utf-8.

    ob_start();ob_end_clean();Header( "Content-type: application/octet-stream"); Header( "Accept-Ranges: bytes "); Header( "Content-type:application/vnd.ms-excel;charset=gb2312");   Header( "Content-Disposition:attachment;filename={$filename}.xls");

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

    $path="./Public/uploads/";     $path=str_replace("/","/",realpath($path)."/");  //獲取絕對路徑,并轉換分隔符

    4.在配置nginx和php方面,我使用了fastCGI的方式,將如下代碼保存為cmd文件,直接點擊運行就可以了

    "F:phpphp-cgi.exe" -b 127.0.0.1:9000 -c "F:phpphp.ini" //后面是php文件的路徑

    然后在nginx的配置文件里加上幾句話
    location ~ .php/?.* {            root           myapplications;            fastcgi_pass   127.0.0.1:9000;             fastcgi_index  index.php;             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;            include        fastcgi_params;            #定義變量 $path_info ,用于存放pathinfo信息             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_param SCRIPT_FILENAME $document_root$real_script_name;             fastcgi_param SCRIPT_NAME $real_script_name;             fastcgi_param PATH_INFO $path_info;         }


    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 贵州省| 华宁县| 汝州市| 五指山市| 顺平县| 汝南县| 湖州市| 崇仁县| 资中县| 郧西县| 清远市| 博爱县| 湖口县| 颍上县| 拜泉县| 新绛县| 西贡区| 同德县| 菏泽市| 依安县| 嘉鱼县| 通榆县| 福建省| 内乡县| 象州县| 高阳县| 楚雄市| 白沙| 佛坪县| 宽甸| 杂多县| 巴中市| 武陟县| 和林格尔县| 英吉沙县| 巴楚县| 南川市| 双鸭山市| 若羌县| 黔西县| 卢龙县|