1.準(zhǔn)備工作
Windows操作系統(tǒng)
-
Nginx
下載地址:http://nginx.org/en/download.html
選擇一個(gè)最新版下載即可,我下載的是 nginx/Windows-1.9.15
-
PHP
下載地址:http://php.net/downloads.php
(nginx下php是以FastCGI的方式運(yùn)行,所以我們下載非線程安全也就是nts的php包)
選擇一個(gè)PHP7的最新版下載即可,我下載的是 php-7.0.5-nts-Win32-VC14-x64
2.軟件安裝
-
Nginx
Nginx本身就是綠色軟件,下載zip安裝包解壓后,雙擊nginx.exe就可以運(yùn)行
我的nginx放置的目錄為:C:\lish\Program\nginx-1.9.15
雙擊后在劉瀏覽器打開 http://127.0.0.1 即可以看到歡迎頁(yè)面
-
PHP
PHP也是綠色軟件,下載zip安裝包解壓即可
我的PHP放置的目錄為:C:\lish\Program\php-7.0.5
3.環(huán)境配置
準(zhǔn)備一個(gè)文件夾,作為網(wǎng)站的根目錄,這個(gè)在下面的配置文件中會(huì)多次用到,我的網(wǎng)站根目錄為:C:\lish\Program\htdoc
- Nginx
在Nginx根目錄下找到conf目錄,編輯器打開nginx.conf
1.找到這個(gè)配置塊,
location / {,
root html;
index index.html index.htm;
}
修改為:
location / {,
root C:\lish\Program\htdoc;
index index.html index.htm;
}
2.找到這個(gè)配置塊
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
/scripts$fastcgi_script_name;include fastcgi_params;
}
先將前面的“#”去掉,同樣將root html;改為root D:/wnmp/www;。再把/scripts改為$document_root,這里的$document_root就是指前面“root”所指的站點(diǎn)路徑,這是改完后的:
location ~ .php
document_root`$fastcgi_script_name;
include fastcgi_params;
}
-
PHP
在php根目錄下找到php.ini-development文件,復(fù)制一份在當(dāng)前目錄并且重命名為php.ini
記事本打開php.ini,找到 “;cgi.fix_pathinfo=1”,去掉全面的分好,也就是說(shuō)打開這條注釋。
4.運(yùn)行與測(cè)試
-
配置原理
在這里,我簡(jiǎn)單說(shuō)說(shuō)配置的原理,因?yàn)閚ginx是一個(gè)反向代理的web服務(wù)器,因此它其實(shí)必須依賴一個(gè)真正的web服務(wù)器才能執(zhí)行動(dòng)態(tài)的網(wǎng)頁(yè)內(nèi)容,因此這里php就是使用fastcgi來(lái)充當(dāng)這個(gè)真正的web服務(wù)器,它運(yùn)行在9000端口上,這也是為什么nginx.conf中有這樣一句
fastcgi_pass 127.0.0.1:9000;,知道這個(gè)原理后,下面的思路就很明確了,打開fastcgi,然后再打開nginx就行了 -
打開nginx
這個(gè)沒(méi)啥好說(shuō)的,雙擊nginx.exe就打開了,上文中已經(jīng)提到了
-
打開fastcgi
在命令行中,cd到php的home目錄,然后執(zhí)行如下命令:
php-cgi.exe -b 127.0.0.1:9000 -c php.ini -
測(cè)試
在 C:\lish\Program\htdoc 下新建一個(gè)info.php文件,輸入如下內(nèi)容:
<?php
phpinfo
?>
打開瀏覽器,輸入 http://127.0.0.1/info.php,這時(shí)候可以看到如下頁(yè)面了:
5.補(bǔ)充
執(zhí)行了php-cgi.exe -b 127.0.0.1:9000 -c php.ini之后,控制臺(tái)就一直開著,很不方便。
這個(gè)時(shí)候可以使用 RunHiddenConsole.zip 來(lái)得以補(bǔ)充
然后復(fù)制到nginx目錄,新建兩個(gè)bat批處理文件,start.bat和stop.bat
start_nginx.bat:
@echo off
REM set PHP_FCGI_CHILDREN=5
set PHP_FCGI_MAX_REQUESTS=1000
echo Starting PHP FastCGI…
RunHiddenConsole C:/lish/Program/php-7.0.5/php-cgi.exe -b 127.0.0.1:9000 -c C:/lish/Program/php-7.0.5/php.ini
echo Starting nginx…
RunHiddenConsole C:/lish/Program/nginx-1.9.15/nginx.exe -p C:/lish/Program/nginx-1.9.15/nginx
stop_nginx.bat:
@echo off
echo Stopping nginx…
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI…
taskkill /F /IM php-cgi.exe > nul
exit
nginx的目錄此時(shí)大概是這樣子:
保存兩個(gè)文件,點(diǎn)擊start_nginx.bat:啟動(dòng)nginx和php!這時(shí)候Ctrl+Alt+Del可以看到:
打開瀏覽器,輸入 http://127.0.0.1/info.php,這時(shí)候同樣可以看到剛才的目錄。