自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版

摘要:
Nginx比apache要好,优点很多,随便去搜寻引擎找一下就能找到一大把资料,这不是我们讨论的重点,我们的重点是自己做一个运行组合!indexindex.htmlindex.htmindex.php;#默认文档,以空格的方式添加多默认文档。charsetutf-8;#编码error_page404/404.html;#404错误代码指定文件location=/404.html{#错误所显示文档rootD:/wnmp/_www;#错误文件目录}error_page500502503504/50x.html;#50x错误代码指定文件location=/50x.html{#错误所显示文档rootD:/wnmp/_www;#错误文件目录}location~.php${rootD:/wnmp/_www/_a;fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;includefastcgi_params;}location~/.ht{denyall;}}再建立b.com.conf,內容為:server{listen80;#端口server_namewww.b.com;#绑定域名,以空格的方式添加多域名。autoindexon;#是否開啟目錄瀏覽,off为禁止。

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

免责声明:文章转载自《自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇tft_LCD一些引脚极性设置方法:vsync, hsync, VBLANK如何触发react input change事件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

php传输大数据大文件时候php.ini相关设置

post_max_sizewhich is directly related to the POST size---针对采用post上传的,大文件,此项为关键 upload_max_filesizewhich may be unrelated, not sure--针对上传大文件此项为关键 max_input_time, if the POSt take...

php-fpm优化

一.php-fpm 进程设置 php-fpm进程池开启进程有两种方式,一种是static,直接开启指定数量的php-fpm进程,不再增加或者减少;另一种则是dynamic,开始时开启一定数量的php-fpm进程,当请求量变大时,动态的增加php-fpm进程数到上限,当空闲时自动释放空闲的进程数到一个下限。 动态适合小内存机器,灵活分配进程,省内存。静态适用...

PHP处理kafka消息队列

在安装php-kafka 扩展后,就可以开始编写 php 消费消息的脚本了,php-rdkafka 扩展提供了几种消息处理的方式 低级方式(Low level) 这种方式没有消费组的概念 <?php $rk = newRdKafkaConsumer(); $rk->setLogLevel(LOG_DEBUG); //指定 broker 地...

php/phpmyadmin新手式环境搭建

PHP 之前就在折腾 zabbix 的时候遇到一个情况, 安装 php6 的时候各种库丢失, 最重要的 gd 经常跑路 只是无意中遇到了一种小方式, 现在已经迷糊了, 前天因为在部署 phpAdmin 的时候搬出来旧的记录资料, 是关于 php7 的, yum install php70w-common php70w-fpm php70w-opcache...

phpstorm 使用 Xdebug 调试代码

用过Java、C#等静态语言的同学调试代码经常是打个断点,然后轻松调试,而PHPer调试代码时经常是 echo $a;exit; 非常的不方便,有的同学有时候打完断点没删就给commit上去了,这就造成了很多困扰,有没有办法更优雅的调试呢?那当然有的,这里用到一个PHP模块xdebug,xdebug安装教程,使用它进行PHP代码调试,能有效减少工作量和B...

nginx php 使用unix socket 还是tcp?

两种通信方式的分析和总结 从原理上来说,unix socket方式肯定要比tcp的方式快而且消耗资源少,因为socket之间在nginx和php-fpm的进程之间通信,而tcp需要经过本地回环驱动,还要申请临时端口和tcp相关资源。 当然还是从原理上来说,unix socket会显得不是那么稳定,当并发连接数爆发时,会产生大量的长时缓存,在没有面向连接协议...