windows下搭建nginx+php開發環境
1.前言
windows下大多我們都是下載使用集成環境,但是本地已經存在一個集成環境,但不適合項目的需求。因此准備再自己搭建一個環境。
2.准備
工具:
下載 nginx1.14.0(版本根據自己需要下載,本教程使用1.14.0版本)

下載 PHP7.2.11(版本根據自己需要下載,本教程使用7.2.11版本)
下載 RunHiddenConsole 鏈接:https://pan.baidu.com/s/1gHDrQBqDUFZH4uESNV9aXQ 密碼:oq9a
3.安裝
(1)解壓安裝php和nginx
解壓安裝在指定文件夾。

(2)配置php
進入php文件夾,找到php.ini-development配置文件並copy一份重命名為php.ini。
雙擊打開php.ini配置文件
搜索extension_dir找到配置項,把該配置項設置成php目錄下ext的絕對路徑(最好是絕對路徑,也可以是相對路 徑"./ext"),如圖:

ps:左邊的;號要刪除,該分號作用是注釋,即分號后面的內容不參與執行,僅僅是備注。
搜索cgi.fix_pathinfo找到配置項,取消注釋並把該配置項設置成1。
cgi.fix_pathinfo是用來設置在cgi模式下PHP是否提供PATH_INFO信息。
因為nginx默認不會設置PATH_INFO的值,所以需要通過上面的方法來提供。
ps:暫時開啟這兩個就可以執行了,其他配置項根據自己需求開啟,不一一說明
(3)配置nginx
打開nginx文件夾,conf里面的nginx.conf配置文件
主要修改以下地方:
server { listen 81; //端口號(默認80,因已存在一個集成環境造成沖突,改成81),根據自己需要修改 server_name test.com; //喜歡什么寫什么(記得在host文件上加上該域名) #charset koi8-r; #access_log logs/host.access.log main; location / { root E:\self\www; //修改成自己網站根目錄的絕對路徑(自己喜歡) index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # 把這幾個前面的注釋#符號刪掉
location ~ \.php$ {
#網站根目錄(跟上面那個一樣)
root E:/self/www;
#php-cgi監聽端口號(默認9000,根據實際情況自己修改)
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
#下面這里要改看清楚原本是/script$fastcgi_script_name,改成$document_root$fastcgi_script_name;
#$document_root其實就是上面的root,可以直接改成絕對路徑E:/self/www$fastcgi_script_name這樣子,你喜歡
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
ps:如果你直接復制上面的請把 我寫的注釋刪掉,怕影響了代碼。以下是我的配置圖:

(4)開啟nginx和php-cgi
開啟nginx:打開cmd命令提示符輸入命令,start nginx。(自己配置全局變量)
或者進入到nginx目錄下,輸入命令 nginx.exe,開啟nginx
nginx.exe -s reload 重啟
nginx.exe -s quit 關閉
開啟php-cgi.exe
E:\self\soft\php-7.2.11/php-cgi.exe -b 127.0.0.1:9001 -c E:\self\soft\php-7.2.11/php.ini
就是php目錄下的 php-cgi.exe和php-ini文件,加上絕對路徑,端口號要跟nginx的對上!

這樣子就是正常滴,別人為它傻了,怎么沒反應。
(5)測試
在你的網站根目錄下創建一個phpinfo.php文件,里面編寫
<?php phpinfo();
然后保存。
瀏覽器上輸入你的域名和端口號(端口號80的話不需要填寫,其他的一定要在域名后加上),加上PHP文件就能訪問成功啦~

4.批處理文件

這個窗口是不能關的,一旦管理,php-cgi就會關閉,就不能解析php文件。
是不是很麻煩不能最小化,我們現在就來教你怎么解決。
為了節省時間可以用批處理來打開/關閉Nginx和php-cgi,
這里用到RunHiddenConsole(用來隱藏CMD命令窗),網上一搜大把,本文開頭也給出了下載地址,下載后把RunHiddenConsole.exe和批處理文件放在同一級目錄就行啦,是不用雙擊打開安裝什么滴,別辣么傻,我傻就行了。
編寫批處理文件(.bat就是批處理文件,有興趣學的可以學些)
啟動nginx和php-cgi批處理文件start.bat(文件名自己喜歡)
start.bat
@echo off set PHP_FCGI_MAX_REQUESTS = 1000 echo Starting PHP FastCGI... rem 下面這里的分別替換成你的php-cgi.exe和php.ini的路徑 ,后面的-b,-c等參數必須保留且注意前后空格 RunHiddenConsole E:\self\soft\php-7.2.11/php-cgi.exe -b 127.0.0.1:9001 -c E:\self\soft\php-7.2.11/php.ini echo Starting nginx... rem 注意替換成你的nginx目錄 E:\self\soft\nginx-1.14.0/nginx.exe -p E:\self\soft\nginx-1.14.0/ cd D:/webServer/nginx-1.5.2/ pause
關閉批處理文件 stop.bat
@echo off echo Stopping nginx... taskkill /F /IM nginx.exe > nul echo Stopping PHP FastCGI... taskkill /F /IM php-cgi.exe > nul exit
批處理文件雙擊就能運行。
如果有人發現,端口號對上了,但是瀏覽器訪問php文件,只下載並沒有解析,為什么會這樣,明明百度了那么多教程,配置怎么看都沒有問題?
其實很簡單,重啟電腦!是的,就是重啟電腦。重啟nginx沒有任何作用,別問我怎么知道,我當初就搞了很久,沒想到真的是要重啟電腦。
