自己动手搭建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)下 ...
随机推荐
- Java中byte转int的方法
byte转化为int有两种情况: 1)要保持数值不变 应用场景:数值计算.等等. 方法:能够直接採用强制类型转换:int i = (int) aByte, 比如:若aByte=0xff(即数值为-1) ...
- Linux下PHP与普通C程序通信
Linux下的普通C程序之前可以使用FIFO(有名管道来进行进程间通信,因为这个管道以一个文件的形式存在于文件系统上,因此只要能读写这个文件就可以实现进程间通信. 首先使用mkfifo命令有文件系统上 ...
- 2.Freshman阶段学习内容的确定
我刷知乎.在知乎上答题的程序员,不是很牛逼就是更牛逼,说起各种系统.各种系统的各种版本.各种语言.数据库.算法.IT届的各种圣战都有板有眼.信手拈来.头头是道,不得不服.这导致了一些非常严重的问题:我 ...
- 关于iOS8上本地通知接收不到的问题
在iOS8系统开发使用本地通知时,会出现如下的相关提示语: 1 Attempting to schedule a local notification2 with an alert but haven ...
- offsetParent 到底是哪一个?
前言 温故而知新.遇到offsetParent这个知识点,发现书上讲的不够详细.于是看了看豪情的博客,发现讲得很具体,收藏一下. 正文 不同情况 没有已定位的父节点,且自身position:relat ...
- iOS 时钟动画
在iOS开发中,定时器NSTimer并不能够准确的出发,通常使用NSTimer只能控制不需要精确处理的操作,而CADisplayLink就是在每次屏幕刷新时,通知系统.CADisplayLink最大的 ...
- new Date()的参数
前两天发现手机页面的倒计时在Android上正常显示,在iPhone却不能显示. 后来又发现在ff和ie里也不显示.(以前只在chrome里看过,显示正常). 后来同事改了new Date()里字符串 ...
- Python开发环境Spyder安装方法
Spyder(Scientific PYthon Development EnviRonment)是一个强大的交互式 Python 语言开发环境,提供高级的代码编辑.交互测试.调试等特性,支持包括 W ...
- MacOS下使用VMware5 破解 安装win7 ISO 激活
VMware5 下载 破解 以及win7 ISO版本的安装 激活VMware5 下载与破解参考方法http://www.macx.cn/thread-2060440-1-1.htmlVMware5 是 ...
- 清除缓存、开启IO统计
SQL性能优化前期准备-清除缓存.开启IO统计 如果需要进行SQl Server下的SQL性能优化,需要准备以下内容: 一.SQL查询分析器设置: 1.开启实际执行计划跟踪. 2.每次执行需优化SQL ...