自己動手搭建Nginx+memcache+xdebug+php執行環境綠色版Forwindows版

developerguy發表於2016-07-07

    Nginx比apache要好,優點很多,隨便去搜尋引擎找一下就能找到一大把資料,這不是我們討論的重點,我們的重點是自己做一個執行組合!
     為何我不從網上下載一個別人已經封裝好的現成的版本呢?因為很多人封裝了之後就不在更新了,以後想要更新都不知道怎麼做,既然如此還不如自己好好研究一下自己封裝,將來要升級也不用求人,藝不壓身!

     我說下我搭配的這個組合的特點:

複製程式碼
主要構成:
    1.Php 5.3
    2.Nginx 1.3.6
    3.Memcache 2.2.6 
    4.Xdebug v2.2.1

注意事項:
    1.不要隨意修改資料夾路徑,最好是放到d:/wnmp下,如果一定要修改路徑就必須要遵循下邊的規定
    2.因為要用cgi模式執行php,所以php版本要選擇nts版
    3.不要選擇太高版本的PHP,因為這會導致memcache很難安裝或找不到對應版本的dll
    4.如果php用vc9的32位版本,那麼memcache也要對應的選擇該版本的dll
    5.正常的環境搭建起來之後應該至少有3個程式,分別是:80埠的nginx;11211的memcache;9000的php-cgi
    6.繫結多域名時複製一份/wnmp/_conf/?.conf,然後進行編輯,編輯完成後要重啟 Nginx 或reload一下也可以
    7.新增網站時,資料夾應使用“/”不可以使用“”,例如:D:/wnmp/nginx1.3/_www/

如果要修改路徑:
    1.首先修改setup.bat和stop.bat裡的路徑
    2.修改php.ini裡的ext路徑
    3.修改nginx.conf裡的路徑
    4.修改_conf裡每個conf檔案裡的路徑

用法:
    1.啟動 start.bat
    2.停止 stop.bat
    3.把PHP檔案放入 /wnmp/_www 下即可
複製程式碼

     通過上邊的說明可以看出,這個組合我並沒有把mysql加進來,也沒有加入zend,反而是加入了xdebug,原因很簡單:我需要這個組合做開發用.而我現在用的伺服器是CentOS作業系統,用的資料庫是Redis,所以這個組合沒辦法正式作為生產用,如果你希望能夠搭建一個可以生產用的除錯環境的話,那麼我建議你拿掉xdebug,加入zend和eAcc另外下載軟體的時候也要下載那些用tar封裝的版本.資料庫其實沒必要整合進這個組合內,他可以單獨來安裝.

     好了,接下來我詳細的說一下這個組合的搭建思路,首先要準備軟體,我們需要:

1.php-5.3.0-nts-Win32-VC9-x86.zip  下載地址是:http://windows.php.net/downloads/releases/archives/

注意:一定要下載nts版,不然無法執行在cgi模式下,另外我之所以沒有選擇更高的php版本,是因為高版本不夠穩定,外加高版本很難找到memcache;xdebug之類的dll

2.Nginx 1.3.6 下載地址是:http://nginx.org/

注意:要下載zip壓縮的版本,不要下載.bz或.tar的壓縮包,這些都是linux的版本.

3.下載memcache和xdebug的dll檔案 下載地址是:http://downloads.php.net/pierre/

注意:下載dll的時候一定要注意和php的版本對應不然永遠安裝不成功,例如:memcache要下載php_memcache-2.2.6-5.3-nts-vc9-x86.zip這個,而xdebug要下載php_xdebug-2.0.5-5.3-nts-Win32-VC9-x86.zip

4.下載RunHiddenConsole  下載地址是:http://redmine.lighttpd.net/attachments/660/RunHiddenConsole.zip

注意:RunHiddenConsole.exe的作用是在執行完命令列指令碼後可以自動關閉指令碼,而從指令碼中開啟的程式不被關閉

 

操作方法:
     1.在d:建立wnmp目錄,在wnmp下建立php5.3目錄,把下載得到的php壓縮包解壓進去.

     2.找到php.ini-development修改為php.ini,然後開啟修改一下內容:

      把cgi.fix_pathinfo=1左側的分號去掉.

      找到extension_dir把左側的分號去掉,並改為extension_dir = “d:/wnmp/php5.3/ext”

      找到extension=???.dll,看你需要哪些元件,把左側的分號去掉

     3.在wnmp下建立nginx1.3目錄,把nginx解壓進去,然後修改conf下的nginx.conf,修改後的內容為:

複製程式碼
#user  nobody;
worker_processes  1;
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    gzip  on;

    #include的目的是為了繫結多個域名到多個虛擬目錄
    include       D:/wnmp/_conf/*.conf;
}
複製程式碼

     4.在wnmp下分別建立_conf資料夾和_www資料夾,然後在_conf下建立a.com.conf,內容為:

複製程式碼
server {
    listen       80;                                #埠
    server_name  www.a.com;                            #繫結域名,以空格的方式新增多域名。
    index        index.html index.htm index.php;    #預設文件,以空格的方式新增多預設文件。
    root         D:/wnmp/_www/_a;                    #網站檔案地址,目錄用“/”形式。否則容易出現錯誤。
    autoindex    on;                                #是否開啟目錄瀏覽,off為禁止。
    charset      utf-8;                                #編碼

    error_page   404  /404.html;                    #404錯誤程式碼指定檔案
    location = /404.html {                            #錯誤所顯示文件
        root     D:/wnmp/_www;                        #錯誤檔案目錄
    }

    error_page   500 502 503 504  /50x.html;        #50x錯誤程式碼指定檔案
    location = /50x.html {                            #錯誤所顯示文件
        root     D:/wnmp/_www;                        #錯誤檔案目錄
    }

    location ~ .php$ {
        root           D:/wnmp/_www/_a;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    location ~ /.ht {
        deny  all;
    }
}
複製程式碼

再建立b.com.conf,內容為:

複製程式碼
server {
    listen       80;                                #埠
    server_name  www.b.com;                            #繫結域名,以空格的方式新增多域名。
    index        index.html index.htm index.php;    #預設文件,以空格的方式新增多預設文件。
    root         D:/wnmp/_www/_b;                    #網站檔案地址,目錄用“/”形式。否則容易出現錯誤。
    autoindex    on;                                #是否開啟目錄瀏覽,off為禁止。
    charset      utf-8;                                #編碼

    error_page   404  /404.html;                    #404錯誤程式碼指定檔案
    location = /404.html {                            #錯誤所顯示文件
        root     D:/wnmp/_www;                        #錯誤檔案目錄
    }

    error_page   500 502 503 504  /50x.html;        #50x錯誤程式碼指定檔案
    location = /50x.html {                            #錯誤所顯示文件
        root     D:/wnmp/_www;                        #錯誤檔案目錄
    }

    location ~ .php$ {
        root           D:/wnmp/_www/_b;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    location ~ /.ht {
        deny  all;
    }
}
複製程式碼

通過上邊的操作,實際上我們已經在D:/wnmp/_www下建立了兩個網站,他們分別是:

     D:/wnmp/_www/_a  繫結的域名是 www.a.com

     D:/wnmp/_www/_b  繫結的域名是 www.b.com

nginx+php的環境就初步配置好了,我們可以用命令啟動一下試試看:

     d:/wnmp/php5.3/php-cgi.exe -b 127.0.0.1:9000 -c d:/wnmp/php5.3/php.ini

    這樣就可以啟動了,開啟工作管理員看一下程式,或者用netstat看一下埠佔用,如果正常的話應該9000埠被佔用了

    nginx也可以手工啟動起來,用下邊的命令試試看:

    D:/wnmp/nginx1.3/nginx.exe -p D:/wnmp/nginx1.3

    啟動之後你會發現80埠被佔用了.

如果上邊的兩部份都成功了的話,那麼你就已經成功了一大半.

     接下來就是需要配置memcache和xdebug了,前邊我已經說過了,我安裝這兩部份是為了開發方便所以我要用debug的東西和快取的部份,如果你是想架設正式伺服器的話,那麼就在此時安裝zend;memcache和eAcc.但是要說明一點:zend和xdebug是不能共存的,他們會衝突,原因就是同行競爭了!!!

現在我們來安裝memcache和xdebug:

     把我們剛才下載的dll丟進/wnmp/php5.3/ext資料夾下,然後修改php.ini用extension=???.dll載入就行了.

     xdebug要用下邊的方式來載入:

複製程式碼
;載入Xdebug
[Xdebug]
zend_extension="D:/wnmp/PHP5.3/ext/php_xdebug-2.2.1-5.3-vc9-nts.dll"
;是否開啟除錯內容
xdebug.profiler_enable=on
;是否開啟自動跟蹤
xdebug.auto_trace = On
;是否開啟異常跟蹤
xdebug.show_exception_trace = On
;是否收集變數
xdebug.collect_vars = On
;是否收集返回值
xdebug.collect_return = On
;是否收集引數
xdebug.collect_params = On
;跟蹤輸出路徑
xdebug.trace_output_dir="D:/wnmp/tmp/xdebug"
;除錯輸出路徑
xdebug.profiler_output_dir="D:/wnmp/tmp/xdebug"
複製程式碼

注意:我們用的是nts版,所以要用zend_extension的方式來載入,別搞錯了.

最後重啟一下nginx就大功告成了.為了啟動和關閉方便,我寫了一個批處理在執行開啟和停止的動作,程式碼如下:

複製程式碼
rem 這是start.bat
@echo off
color 06
REM Windows 下無效
REM set PHP_FCGI_CHILDREN=5

call stop.bat

REM 每個程式處理的最大請求數,或設定為 Windows 環境變數
set PHP_FCGI_MAX_REQUESTS=1000
 
echo Starting Memcache 2.2.6 ...
"D:/wnmp/memcache/memcached.exe" -d install
"D:/wnmp/memcache/memcached.exe" -d start
 
echo Starting php-5.3.0-nts-Win32-VC9-x86 FastCGI ...
RunHiddenConsole D:/wnmp/php5.3/php-cgi.exe -b 127.0.0.1:9000 -c D:/wnmp/php5.3/php.ini
 
echo Starting Nginx 1.3.6 ...
RunHiddenConsole D:/wnmp/nginx1.3/nginx.exe -p D:/wnmp/nginx1.3

pause
複製程式碼
複製程式碼
rem 這是stop.bat
@echo off
echo Stopping Nginx...  
taskkill /F /IM nginx.exe > nul

echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul

echo Stopping Memcache ...
"D:/wnmp/memcache/memcached.exe" -d stop
cls
複製程式碼

最後我把我封裝的Nginx+memcache+xdebug+php執行環境提供給大家下載吧:

下載地址是:http://download.csdn.net/detail/sibang/4805911

 

http://www.cnblogs.com/see7di/archive/2012/11/24/2786153.html

 


相關文章