之前一直是使用MAMP作為Mac開發(fā)PHP的開發(fā)環(huán)境,也是一直用的是Apache,最近想換為Nginx,但是折騰了好久!以下為踩坑記錄.如需看解決辦法,請直接滑到最下方
首先我想的是將Apache關(guān)掉,打開Nginx不就完工了

image
然后刷新網(wǎng)頁,哈哈,成功打開首頁,正當(dāng)我覺得這就完事了,點擊了一下其他鏈接

image
WTF這是什么鬼

image
經(jīng)查資料得知:原網(wǎng)站環(huán)境為wamp使用了偽靜態(tài),偽靜態(tài)規(guī)則寫在網(wǎng)站根目錄的.htaccess文件中,Apache下默認(rèn)識別此文件內(nèi)容,而Nginx服務(wù)器不識別.htaccess文件,導(dǎo)致偽靜態(tài)規(guī)則無效,自然無法解析url地址,導(dǎo)致404錯誤(文件不存在)
開始找解決辦法
然后開始搜索解決辦法,網(wǎng)上有說把.htaccess轉(zhuǎn)成Nginx規(guī)則的,我找到項目目錄下的.htaccess文件,在網(wǎng)上找了個Apache轉(zhuǎn)Nginx的網(wǎng)站,粘貼進(jìn)去獲得如下代碼
if (!-d $request_filename){
set $rule_0 1$rule_0;
}
if (!-f $request_filename){
set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
setenv PATH_INFO:$1;
rewrite ^/(.*)$ /index.php last;
}
然后開始找nginx.conf文件
網(wǎng)上有說路徑在/Applications/MAMP/conf/nginx/nginx.conf,一找,果然在這,把規(guī)則粘貼進(jìn)去,高高興興打開網(wǎng)站刷新

image
為啥還是404?????
繼續(xù)找吧!我想MAMP這么高級的集成環(huán)境,應(yīng)該不會讓用戶去目錄里找配置文件吧,在軟件中翻了一下,發(fā)現(xiàn)這有倆框

image
粘貼規(guī)則進(jìn)去,刷新,還是404
因為我使用的是TP5框架,索性去官網(wǎng)找找,在官網(wǎng)中找到這樣一段代碼
location / { // …..省略部分代碼
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}

image
怎么和我轉(zhuǎn)換出來的不一樣???好像發(fā)現(xiàn)了問題所在,嘩嘩的將這段代碼復(fù)制帶
nginx.conf中,跑起來,尼瑪,為啥又是404看來搜索引擎不靠譜,這次直接去了MAMP官網(wǎng),看到一段話

image
尼瑪,原來上面那個路徑根本就不對啊,網(wǎng)友坑啊
然后將TP5官網(wǎng)的規(guī)則復(fù)制進(jìn)這個目錄下的
nginx.conf里面一刷新,臥槽,還是404,為毛為毛,官網(wǎng)明明說的這個路徑啊
多次嘗試無果,靜下心來把官網(wǎng)的文檔重頭看了一遍,文檔開頭這樣寫道

image

image

image

image
然后將代碼復(fù)制到這個位置,然后重啟
Nginx 
image