自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
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版的更多相关文章
- linux下搭建nginx+php(FastCGI)+mysql运行环境
一.安装环境 1.CentOS5.5 2.php5.4 3.MySQL5.5.19 二.安装程序依赖库和开发环境 为了省事把所需要的库文件全都安装上,可以使用rpm包安装,也可以用yum命令安装, 1 ...
- 模拟搭建Web项目的真实运行环境(一)
序言 最近尝试完整搭建一个Web项目的运行环境,总结一下这几个月学到的知识点. 后面的文章主要包括一下几个内容: A. 搭建一个Linux服务器,用来部署Redis.Mongo等数据存储环境: B. ...
- 【.NetCore学习】ubuntu16.04 搭建.net core mvc api 运行环境
查看linux内核版本 uname -a 打印结果 python@ubuntu:~$ uname -a Linux ubuntu 4.4.0-31-generic #50-Ubuntu SMP Wed ...
- 【Nginx】如何基于主从模式搭建Nginx+Keepalived双机热备环境?这是最全的一篇了!!
写在前面 最近出版了<海量数据处理与大数据技术实战>,详情可以关注 冰河技术 微信公众号,查看<我的<海量数据处理与大数据技术实战>出版啦!>一文. 也有不少小伙伴 ...
- centos7最小版本安装nginx+tomcat+java+mysql运行环境
最近项目从windows搬到linux,由于项目组成员有限并且有其它紧急的任务需要处理,因而这个任务就落到我的头上了.下面记录下centos最小版本安装nginx+tomcat+mysql+java的 ...
- 通过Jetty搭建一个简单的Servlet运行环境
最近在做一些简单的Servlet开发的时候,感觉每次调试的时候都要发布到tomcat上很麻烦,把程序共享给同事也很麻烦,需要帮他设置本地的tomcat环境. 在网上找了找其他的Servlet运行环境, ...
- python 的 virtualenv 环境搭建及 sublime 手动创建运行环境
一.安装 virtual env sudo pip install virtualenv二.进入一个空白的目录初始化 virtual env 的环境cd ~/workspace/python/virt ...
- Java运行环境绿色部署配置
这个Java的绿色安装配置,还有从未自己的使用电脑说起来. 最近电脑运行慢,很长时间没有清理及维护了,而且有可能中毒或木马了,所以就把系统进行了Ghost还原了,所以原来安装的jdk环境也无法使用了, ...
- Windows 下 Nginx + PHP + Xdebug + PHPStorm 调试环境配置
前期条件:安装好 Nginx.PHP.PHPStorm,使得可以正常访问 一.为 PHP 安装 Xdebug 到 Xdebug 的官网(http://xdebug.org/download.php)下 ...
随机推荐
- CreateFileMapping使用方法
CreateFileMapping的MSDN翻译和使用心得 測试创建和打开文件映射的时候老是得到"句柄无效"的错误, 细致看了MSDN以后才发觉是函数认识不透, 这里把相关的解 ...
- sublime test3 使用技巧
sublimeText3使用技巧 常用快捷键 ctrl+d :选中光标处的文本单元,继续按ctrl+d选中相同文本单元 alt+F3 :功能和ctrl+d类似,用于批量修改相同文本 shift+↑ ↓ ...
- iOS中的地图和定位
文章摘自http://www.cnblogs.com/kenshincui/p/4125570.html#location 如有侵权,请联系删除. 概览 现在很多社交.电商.团购应用都引入了地图和定 ...
- 浅谈Servlet读取Html参数
1首先:webApp名称为cookieAndsession.html文件一般放在WebRoot文件夹下:/cookieAndsession/WebRoot/OrderForm.html,那么外界要访问 ...
- js正则语法
整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$只能输入数字:"^[0-9]*$".只能输入n位的数字:"^\d{n}$".只能输入至少n位的数 ...
- A Byte of Python 笔记(11)异常:try..except、try..finally
第13章 异常 当你的程序中出现某些 异常的 状况的时候,异常就发生了. 错误 假如我们把 print 误拼为 Print,注意大写,这样 Python 会 引发 一个语法错误. 有一个SyntaxE ...
- Python学习笔记 (2) :字符串输出、操作、格式化和日期、时间格式化
一.字符串输出及运算 1.常用输出格式及方法 ')#单引号 ")#双引号 """)#三个引号 1234567890 1234567890 1234567890 ...
- C#手机充值
C#手机充值系统开发(基于聚合数据) 说是手机充值系统有点装了,其实就是调用了聚合数据的支付接口,其实挺简单的事 但是我发现博客园竟然没有类似文章,我就个出头鸟把我的代码贡献出来吧 首先说准备工作: ...
- java处理图片时找到不sun.awt.X11GraphicsEnvironment问题
-Djava.awt.headless=true 解决. export DISPLAY=:0或者xhost + localhost 来解决 1. 什么是Headless mode? Headle ...
- MB_CHANGE_DOCUMENT使用方法
REFRESH IT_MSEG. CLEAR IT_MSEG. SELECT * INTO CORRESPONDING FIELDS OF TABLE IT_MSEG ...