剛看到nginx這個詞,我很好奇它的讀法(engine x),我的直譯是“引擎x”,一般引“擎代”表了性能,而“x”大多出現是表示“xtras(額外的效果)”,那麼整個詞的意思就是類似“極致效果”,“額外性能”。當然這裡不是要來嘮嗑,以上是題外話。
nginx相較於我們熟悉的apache、IIS的優勢,就我淺入淺出的了解,在於「反向代理」和「負載平衡」。因此考慮到能夠為Web伺服器節省資源,它可以取代apache來提供Web服務。那麼上正題了,nginx有這麼多優勢,那在windows下要如何來設定nginx+php環境?網路上看到還是那麼多轉載來轉載的文章。這裡就我配置的過程,來介紹一下:
1、首先需要準備的應用程式包。
nginx:nginx/Windows-1.0.4
php:php-5.2.16-nts-Win32-VC6-x86.zip (nginx下php是以FastCGI的方式運行,所以我們下載非線程安全也就是nts的php套件)
(還會用到)RunHiddenConsole:RunHiddenConsole.zip
2、安裝與配置。
1)php的安裝與設定。
直接解壓縮下載好的php包,到D盤wnmp目錄(D:wnmp),這裡把解壓縮出來的資料夾重新命名成php5。進入資料夾修改php.ini-recommended檔案為php.ini,並用Editplus或Notepad++開啟來。找到
extension_dir = "./ext"
改為
extension_dir = "D:/wnmp/php5/ext"
;extension=php_mysql.dll<br>;extension=php_mysqli.dll
前面指定了php的ext路徑後,只要把需要的擴充包前面所對應的「;」去掉,就可以了。這裡打開php_mysql.dll和php_mysqli.dll,讓php支援mysql。當然不要忘掉很重要的一步就是,把php5目錄下的libmysql.dll檔複製到C:Windows目錄下,也可以在系統變數裡面指定路徑,當然這裡我選擇了比較方便的方法^_^。
到這裡,php已經可以支援mysql了。
接下來我們來設定php,讓php能夠與nginx結合。找到
;cgi.fix_pathinfo=1
我們去掉這裡的封號。
cgi.fix_pathinfo=1
2)nginx的安裝與設定。
把下載好的nginx-1.0.4的套件同樣解壓縮到D碟的wnmp目錄下,並重新命名為nginx。接下來,我們來設定nginx,讓它能夠和php協同工作。進入nginx的conf目錄,開啟nginx的設定檔nginx.conf,找到
location / {<br> root html; #这里是站点的根目录<br> index index index.html index.htm index.php;<br>}
將root html;改為root D:/wnmp/www;
再往下,找到
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000<br>#<br>#location ~ \.php$ {<br># root html;<br># fastcgi_pass 127.0.0.1:9000;<br># fastcgi_index index.php;<br># fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;<br># include fastcgi_params;<br>#}
先將前面的「#」去掉,同樣將root html;改為root D:/wnmp/www;。再把標記為紅色的/scripts改為“$document_root”,這裡的“$document_root”就是指前面“root”所指的站點路徑,這是改完後的:
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000<br>#<br>location ~ \.php$ {<br> root D:/wnmp/www;<br> fastcgi_pass 127.0.0.1:9000;<br> fastcgi_index index.php;<br> fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;<br> include fastcgi_params;<br>}
儲存設定文件,就可以了。
nginx+php的環境就初步配置好了,來跑跑看。我們可以輸入指令
來啟動php,並手動啟動nginx,當然也可以利用腳本來實現。
先把下載好的RunHiddenConsole.zip套件解壓縮到nginx目錄內,RunHiddenConsole.exe的作用是在執行完命令列腳本後可以自動關閉腳本,而從腳本中開啟的進程不被關閉。然後來建立腳本,命名為“start_nginx.bat”,我們在Notepad++裡來編輯它
@echo off<br>REM Windows 下无效<br>REM set PHP_FCGI_CHILDREN=5<br><br>REM 每个进程处理的最大请求数,或设置为 Windows 环境变量<br>set PHP_FCGI_MAX_REQUESTS=1000<br> <br>echo Starting PHP FastCGI...<br>RunHiddenConsole D:/wnmp/php5/php-cgi.exe -b 127.0.0.1:9000 -c D:/wnmp/php5/php.ini<br> <br>echo Starting nginx...<br>RunHiddenConsole D:/wnmp/nginx/nginx.exe -p D:/wnmp/nginx
再另外创建一个名为stop_nginx.bat的脚本用来关闭nginx
@echo off<br>echo Stopping nginx... <br>taskkill /F /IM nginx.exe > nul<br>echo Stopping PHP FastCGI...<br>taskkill /F /IM php-cgi.exe > nul<br>exit
做好后,是这样的
这样,我们的服务脚本也都创建完毕了。双击start_nginx.bat看看进程管理器是不是有两个nginx.exe的进程和一个php-cgi.exe的进程呢?
这样nginx服务就启动了,而且php也以fastCGI的方式运行了。
到站点目录下,新建一个phpinfo.php的文件,在里面编辑
<?php <br /> phpinfo();<br>?>
保存后,打开浏览器输入“http://localhost/phpinfo.php”,如果看到
就说明,nginx+php的环境已经配置好了,呵呵~
转自http://www.cnblogs.com/huayangmeng/archive/2011/06/15/2081337.html