WNMP是Web开发集成环境,即Windows+Nginx+MySQL+PHP。今天我们来一步一步配置一个WNMP开发环境。

建立目录

D:\Web
├─bin            // 二进制程序目录
│  ├─mysql       // mysql程序目录
│  ├─nginx       // nginx程序目录
│  └─php         // php  程序目录
└─www            // 网站存放目录

Nginx

Nginx是一个高性能HTTP和反向代理服务器,能够高效率处理高并发HTTP请求。相对于Apache来说,Nginx更加稳定,性能更好,配置简单,占用资源较低,是Apache的不错替代品。 Nginx非常擅长处理静态文件,如html、jpg、css、js等内容。当用户发送请求后,Nginx从文件系统读取文件并发送给用户。对于需要解析的动态资源,如php、asp、jsp脚本则无能为力,但Nginx可以将这些请求反向代理到其他能够处理这些动态资源的服务器上,从而实现动态请求响应。

关于Nginx市场份额数据猛戳 这里

下载Nginx :我们从Nginx官网来获取 Nginx for Windows版本 :http://nginx.org/

部署Nginx:将下载到的压缩包内容解压到nginx目录 编写控制脚本:在bin目录下新建 nginx_start.bat 和 nginx_stop.bat脚本来控制Nginx启动和关闭

nginx_start.bat 脚本

@echo off
echo Starting Nginx...
run nginx\nginx.exe -p D:\Web\bin\nginx

nginx_stop.bat 脚本

@echo off
echo Stopping Nginx...
taskkill /F /IM nginx.exe > nul

运行nginx_start.bat启动nginx服务器,在浏览器地址栏中输入localhost,即可看到 Welcome to nginx! 此时Nginx服务器已经成功启动。接下来我们需要进行一些配置让nginx更好的工作。 welcome-nginx Nginx的配置文件目录在 bin/nginx/conf/nginx.conf ,该文件可包含很多站点配置。为了方便多站点维护,我们需要为每个站点建立单独的配置文件,并在 nginx.conf 中把这些单独的配置包含进来:

// nginx.conf 精简配置示例

worker_processes  1;

error_log  logs/error.log;

events {
  worker_connections  1024;
}

http {
  include php_processes.conf;
  include conf.d/*.conf;
}

在 conf 目录下建立 conf.d  目录存放各个站点单独的配置,如 www.ijustplay.cn  配置文件我们可以保存在 ijustplay.conf  文件中:

server {
  listen       80;
  server_name  www.ijustplay.cn;
  charset utf-8;

  access_log logs/ijustplay_access.log;
  error_log  logs/ijustplay_error.log;
  
  root   D:/Web/www;
  index  index.php index.html index.htm;

  location / {
    ## Regular PHP processing.
    location ~ \.php$ {
      fastcgi_pass   php_processes;
      fastcgi_index  index.php;
      fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
      include        fastcgi_params;
    }
  }
}

在 ijustplay.conf中我们已经加入了php 脚本的支持,但由于 php-cgi 在 windows 下缺少有效的进程管理程序,因此如果有并发请求过来可能会导致 nginx 找不到空闲的 php-cgi 执行请求,从而出现 504 Gateway timeout 错误。因此,我们可以预先启动一定数量 php-cgi 进程来处理并发请求。在conf目录下新建 php_processes.conf 文件:

upstream php_processes {
  server 127.0.0.1:9000 weight=1;
  server 127.0.0.1:9001 weight=1;
  server 127.0.0.1:9002 weight=1;
  server 127.0.0.1:9003 weight=1;
  server 127.0.0.1:9004 weight=1;
}

将该文件包含在Nginx主配置文件中:修改 nginx.conf 在 http{…} 中加入 include php_processes.conf;

PHP

在PHP官方网站下载PHP for Windows:http://windows.php.net/download 版本选择及运行库参考下载页面左侧栏,在此我们选择 Non Thread Safe 版本 部署:将下载到的压缩包解压到 bin/php 目录 编写控制脚本: 在bin目录下新建 php_start.bat 和 php_stop.bat脚本来控制 php-cgi 启动和关闭

php_start.bat

@echo off
echo Starting PHP FastCGI...
run php\php-cgi.exe -b 127.0.0.1:9000 -c php\php.ini
run php\php-cgi.exe -b 127.0.0.1:9001 -c php\php.ini
run php\php-cgi.exe -b 127.0.0.1:9002 -c php\php.ini
run php\php-cgi.exe -b 127.0.0.1:9003 -c php\php.ini
run php\php-cgi.exe -b 127.0.0.1:9004 -c php\php.ini

php_stop.bat

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

MySQL

下载MySQL:https://dev.mysql.com/downloads/windows/ 部署:将下载到的压缩包解压到 bin/mysql 目录 编写控制脚本: 在bin目录下新建 mysql_start.bat 和 mysql_stop.bat脚本来控制 mysql 启动和关闭

mysql_start.bat

@echo off
echo Starting MySQL...
mysql\bin\mysqld.exe --install MySQL --defaults-file="D:\Web\bin\mysql\my.ini" > nul
net start MySQL > nul

mysql_stop.bat

@echo off
echo Stopping MySQL...
net stop   MySQL > nul
sc  delete MySQL > nul

相关阅读

获取WNMP

WNMP安装包



无觅相关文章插件,快速提升流量