1. 程式人生 > >nginx中配置pathinfo模式運用例項

nginx中配置pathinfo模式運用例項

這篇文章主要介紹了nginx中配置pathinfo模式示例,本文詳細記錄了摸索過程和成功的配置案例,需要的朋友可以參考下
緣由

很久不使用apache了,漸漸對apache感到陌生,因為朋友有個ZendFramework框架從apache移到nginx下,需要pathinfo模式支援。

網上海搜

於是開始搜尋nginx+pathinfo相關文章,一開以為很容易就會配置好。因為搜尋後發現有大量文章介紹nginx開啟pathinfo模式,感覺不是什麼難事。但是經過幾個小時下來,還是沒有配置好。並且大量文章的內容都極其相似,基本都是轉載的。
開始有點急了!因為一天過去了沒有配好。

繼續摸索

沒辦法,繼續搜尋。為了驗證方便,我用a.com下載thinkphp框架搭了個環境。並且加了UserAction.class.php控制器類,在類里加了一個app方法並輸出一行文字。
於是,我開始不斷地改寫nginx.conf檔案重啟nginx,不斷的重新整理a.com/index.php/User/app 地址。結果要麼是地址損壞提示、502、Access defind.
又是一天過去了,開始感覺有點彷徨。

最後堅持

按理說我感覺應該有nginx+thinkphp的先例,只是我沒有搜尋到答案而已。突然間感覺網上好迷茫,一個小小的問題尋求不到解答。今晚,又試著使用nginx thinkphp關鍵字搜尋,我一下點到十多頁以後,找到一處程式碼
複製程式碼 程式碼如下:
location / {
if (!-e KaTeX parse error: Expected '}', got 'EOF' at end of input: …rewrite ^/(.*)

/index.php/$1 last;
break;
}
}

location ~ .php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
set $real_script_name f a s t c

g i s c r i p t n a m e ; i f ( fastcgi_script_name; if ( fastcgi_script_name ~ “^(.+?.php)(/.+)$”) {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME d o c u m e n t r o o t document_root real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}

儲存修改,重啟nginx,重新整理瀏覽器
意想不到的頁面出現了

居然能訪問了,終於鬆了一口氣,實在太不容易了。FTP
貼出nginx.conf程式碼:
複製程式碼 程式碼如下:
user www www;

worker_processes 2;
worker_cpu_affinity 01 10;

error_log /data1/logs/nginx_error.log crit;

pid /usr/local/webserver/nginx/nginx.pid;

worker_rlimit_nofile 65535;

events
{
use epoll;
worker_connections 65535;
}

http
{
include mime.types;