PHP-Windows下搭建Nginx+PHP環境

項目中光用Nginx了, 因爲有運維人員, 不多搭建Nginx服務器, 開發也就用用Apache, 搭過幾回Nginx也忘的快, 每次都去翻別人博客, 今天重搭特此記錄, 裝前最好了解下FastCGI(點我去學習)php

一、首先須要準備的應用程序包。html

  nginx:nginx/Windows-1.7.6 (點我去官網選版本)mysql

  php:php-5.3.29-nts-Win32-VC9-x86.zip (點我去官網選版本)(nginx下php是以FastCGI的方式運行,因此咱們下載非線程安全也就是nts的php包)nginx

  (還會用到)RunHiddenConsole:RunHiddenConsole.zipsql

二、安裝與配置。windows

 1)php的安裝與配置。瀏覽器

  直接解壓下載好的php包,到D盤wnmp目錄(D:\wnmp),這裏把解壓出來的文件夾重命名成php5。進入文件夾修改php.ini-production文件爲php.ini,並用Editplus或者Notepad++打開來。找到安全

extension_dir = "./ext"

更改成服務器

extension_dir = "D:/wnmp/php5/ext"

往下看,再找到運維

;extension=php_mysql.dll
;extension=php_mysqli.dll
...等等等把想要的擴展都去掉註釋吧

  PHP 加載擴展須要注意依賴性,好比 php_exif.dll 須要 php_mbstring.dll,你必需要把 php_mbstring.dll 放在 php_exif.dll 前面才能加載成功。

  接下來咱們來配置php,讓php可以與nginx結合。找到並去掉如下行的註釋(即去掉行首分號)

cgi.force_redirect = 1 
cgi.fix_pathinfo = 1 
cgi.rfc2616_headers = 1

這一步很是重要,這裏是php的CGI的設置。

 2)nginx的安裝與配置。

  把下載好的nginx-1.0.4的包一樣解壓到D盤的wnmp目錄下,並重命名爲nginx。接下來,咱們來配置nginx,讓它可以和php協同工做。進入nginx的conf目錄,打開nginx的配置文件nginx.conf,找到

location / {
root html;      #這裏是站點的根目錄
index index.html index.htm;
}

root  html;改成root   D:/wnmp/www;

再往下,找到

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#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」所指的站點路徑,這是改完後的:

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root D:/wnmp/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

保存配置文件,就能夠了。

  nginx+php的環境就初步配置好了,來跑跑看。咱們能夠輸入命令

來啓動php,並手動啓動nginx,固然也能夠利用腳原本實現。

  首先把下載好的RunHiddenConsole.zip包解壓到nginx目錄內,RunHiddenConsole.exe的做用是在執行 完命令行腳本後能夠自動關閉腳本,而從腳本中開啓的進程不被關閉。而後來建立腳本,命名爲「start_nginx.bat」,咱們在Notepad++ 裏來編輯它

@echo off
REM Windows 下無效
REM set PHP_FCGI_CHILDREN=5

REM 每一個進程處理的最大請求數,或設置爲 Windows 環境變量
set PHP_FCGI_MAX_REQUESTS=1000

echo Starting PHP FastCGI...
RunHiddenConsole D:/wnmp/php5/php-cgi.exe -b 127.0.0.1:9000 -c D:/wnmp/php5/php.ini

echo Starting nginx...
RunHiddenConsole D:/wnmp/nginx/nginx.exe -p D:/wnmp/nginx

再另外建立一個名爲stop_nginx.bat的腳本用來關閉nginx

@echo off
echo Stopping nginx...  
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
exit

作好後,是這樣的

這樣,咱們的服務腳本也都建立完畢了。雙擊start_nginx.bat看看進程管理器是否是有兩個nginx.exe的進程和一個php-cgi.exe的進程呢?

這樣nginx服務就啓動了,並且php也以fastCGI的方式運行了。

到站點目錄下,新建一個phpinfo.php的文件,在裏面編輯

<?php
phpinfo();

保存後,打開瀏覽器輸入「http://localhost/phpinfo.php」,若是看到

就說明,nginx+php的環境已經配置好了,呵呵~

參考自:http://www.cnblogs.com/huayangmeng/archive/2011/06/15/2081337.html

PS:上面有些圖也是用的這個博客的。。。。。^_^

相關文章
相關標籤/搜索