Window7 下 WNMP 环境搭建
WNMP 指“Windows 下的 Nginx、MariaDB/MySQL 和 PHP 环境”。
下载
- Nginx:http://nginx.org/en/download.html
- MariaDB:https://downloads.mariadb.org/
- PHP:http://windows.php.net/download
- RunHiddenConsole:http://redmine.lighttpd.net/attachments/660/RunHiddenConsole.zip
在 D 盘根目录下创建目录 wnmp。将 nginx-1.13.0.zip、mariadb-10.1.23-winx64.msi 和 php-7.1.5-nts-Win32-VC14-x64.zip 放在里面。
C:\>mklink /d C:\wnmp D:\wnmp
为 C:\wnmp <<===>> D:\wnmp 创建的符号链接
现在在 C 盘根目录下的 wnmp 中操作。
PHP
php.ini-development 改为 php.ini、编辑它。
; On windows:
; extension_dir = "ext"
; 改为
; On windows:
extension_dir = "C:/wnmp/php7.1.5/ext"
; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+)
; extension folders as well as the separate PECL DLL download (PHP 5+).
; Be sure to appropriately set the extension_dir directive.
;
;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_fileinfo.dll
;extension=php_ftp.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_exif.dll      ; Must be after mbstring as it depends on it
;extension=php_mysqli.dll
;extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_shmop.dll
; The MIBS data available in the PHP distribution must be installed.
; See http://www.php.net/manual/en/snmp.installation.php
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite3.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
; 改为
; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+)
; extension folders as well as the separate PECL DLL download (PHP 5+).
; Be sure to appropriately set the extension_dir directive.
;
extension=php_bz2.dll
extension=php_curl.dll
extension=php_fileinfo.dll
;extension=php_ftp.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_gmp.dll
extension=php_intl.dll
extension=php_imap.dll
;extension=php_interbase.dll
extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_exif.dll      ; Must be after mbstring as it depends on it
extension=php_mysqli.dll
;extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Client
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_shmop.dll
; The MIBS data available in the PHP distribution must be installed.
; See http://www.php.net/manual/en/snmp.installation.php
;extension=php_snmp.dll
extension=php_soap.dll
extension=php_sockets.dll
extension=php_sqlite3.dll
;extension=php_tidy.dll
extension=php_xmlrpc.dll
extension=php_xsl.dll
;cgi.fix_pathinfo=1
; 改为
cgi.fix_pathinfo=1
Nginx
搭建不支持 PHP 的 Nginx 服务器非常简单。那就是说搭建支持 PHP 的 Nginx 服务器就会稍微麻烦些。
修改 nginx.conf。
location / {
    root   html;
    index  index.html index.htm;
}
# 改为
location / {
    root   C:/wnmp/www;
    index  index.html index.htm index.php;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
#    root           html;
#    fastcgi_pass   127.0.0.1:9000;
#    fastcgi_index  index.php;
#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
#    include        fastcgi_params;
#}
# 改为
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9002
#
location ~ \.php$ {
    root           C:/wnmp/www;
    fastcgi_pass   127.0.0.1:9002;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}
$document_root 就是 C:/wnmp/www。
启动
手工启动
启动 php-cgi.exe,监听 9002 端口。
C:\wnmp\php7.1.5>php-cgi.exe -b 127.0.0.1:9002 -c C:/wnmp/php7.1.5/php.ini
另开一个 CMD,启动 Nginx。
start nginx
后台启动
把下载好的 RunHiddenConsole.zip 包解压到 php 目录内,RunHiddenConsole.exe 的作用是在执行完命令行脚本后自动关闭脚本,而从脚本中开启的进程不被关闭。
创建启动脚本“start_nginx.bat”,内容如下。
@echo off
REM Windows 下无效
REM set PHP_FCGI_CHILDREN=5
REM 每个进程处理的最大请求数,或设置为 Windows 环境变量
set PHP_FCGI_MAX_REQUESTS=1000
echo Starting PHP FastCGI...
RunHiddenConsole C:/wnmp/php7.1.5/php-cgi.exe -b 127.0.0.1:9002 -c C:/wnmp/php7.1.5/php.ini
echo Starting nginx...
RunHiddenConsole C:/wnmp/nginx1.13.0/nginx.exe -p C:/wnmp/nginx1.13.0
创建退出脚本“stop_nginx.bat”,内容如下。
@echo off
echo Stopping nginx...
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
exit
以后就可以用这两个脚本开启、关闭服务了。
MariaDB
MariaDB 就是开源、无公司的 Mysql。它的安装和 MySQL 完全一样。默认服务名是 mysql,建议改为 MariaDB 以便区分。
连接 MariaDB 的方式和 MySQL,如果以前用 MySQL 现在用 MariaDB,连接信息不需要更改。
参考链接
附录
搭建不支持 PHP 的 Nginx 服务器
下载 Nginx 的 Windows 版安装文件(在此以 nginx-1.13.0 为例)。
- 将 nginx-1.13.0.zip放在 C 盘根目录下(即路径为C:\)。
- nginx-1.13.0.zip解压到当前文件夹,得到目录- C:\nginx-1.13.0。
- cd nginx-1.13.0然后- start nginx就开启了服务器。
- 浏览器输入 http://localhost/看到“Welcome to nginx!”。
查看 Nginx 进程信息
tasklist /fi "imagename eq nginx.exe"
杀死 Nginx 进程
taskkill /F /IM nginx.exe > nul
启动 Nginx 服务器
start nginx
杀死 PID
# 查看占用 9002 端口的 PID
> netstat -aon|findstr 9002
  TCP    127.0.0.1:9002         0.0.0.0:0              LISTENING       7732
  TCP    192.168.10.119:49484   120.92.58.186:9002     CLOSE_WAIT      7640
# 杀死 pid 是 7732 的进程
taskkill /pid 7732
为 Nginx 开 Virtual Host
开放 8888 端口,根目录在  C:/wnmp/laravel/template/public。
server {
    listen       8888;
    server_name  localhost;
    location / {
        root   C:/wnmp/laravel/template/public;
        index  index.html index.htm index.php;
        try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ \.php$ {
        root           C:/wnmp/laravel/template/public;
        fastcgi_pass   127.0.0.1:9002;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
tags: 服务器 Nginx
												
											Window7 下 WNMP 环境搭建的更多相关文章
- Solr3.6.1 在Tomcat6下的环境搭建
		Solr3.6.1 在Tomcat6下的环境搭建 Tomcat路径:D:\prg\apache-tomcat-6-solr 简写为tomcat_home Solr文件下载保存路径为:F:\softwa ... 
- 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)
		原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ... 
- Windows下的环境搭建Erlang
		Windows下的环境搭建 Erlang 一.安装编译器 在http://www.erlang.org/download.html下载R16B01 Windows Binary File并安装. 二. ... 
- RF+Appium框架自动化测试系列一之(Mac下Appium环境搭建)万事开头难
		消失了3个月,有一段时间没来园子更新博客了,各位看官见谅哈哈,消失是因为刚换了工作环境没外网,好多笔记没能及时的记录分享,以后有时间慢慢补上吧,这段时间主要接触了移动端app的自动化测试,公司为了快速 ... 
- 跟我一起,利用bitcms内容管理系统从0到1学习小程序开发:一、IIS下SSL环境搭建
		缘起 1.从事互联网十来年了,一直想把自己的从事开发过程遇到的问题给写出来,分享给大家.可是可是这只是个种想法,想想之后就放下了,写出来的类文章是少之又少.古人说无志之人常立志,有志之人立长志.今天, ... 
- centos7系统下 docker 环境搭建
		运行环境: VMware Workstation Pro 在虚拟机中安装centos7系统, 选择最小安装, 网络连接方式选择的桥接(与宿主机在同一IP段)centos7一定要安装64位, docke ... 
- eclipse工具下hadoop环境搭建
		eclipse工具下hadoop环境搭建: window10操作系统中搭建eclipse64开发系统,配置hadoop的eclipse插件,让eclipse可以查看Hdfs中的文件内容. ... 
- win7下docker环境搭建nginx+php-fpm+easyswoole+lavarel+mysql开发环境
		win7环境基础在上一篇win7下docker环境搭建nginx+php-fpm+easyswoole开发环境中已经详细叙述搭建完成 本篇文章将叙述如何在上述基础上搭建laravel开发环境,这个其实 ... 
- android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)
		android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把 ... 
随机推荐
- [LeetCode] Zuma Game 题解
			题目 题目 Think about Zuma Game. You have a row of balls on the table, colored red(R), yellow(Y), blue(B ... 
- 常用PHP函数整理
			is_upload_file() 判断文件是不是通过HTTP POST 方式上传来的in_array() 判断变量在不在数组范围内move_uploaded_file() 将上传的临时名移到指定文件夹 ... 
- 存储linux RAID6被重建成RAID5的数据恢复解决方案
			数据恢复故障描述:原存储为12块2T硬盘组成的Linux RAID6,文件系统均为EXT3,此存储上划有3个LUN,每个均为6TB大小,某天在RAID失效后,维护人员为了抢救数据,对此失效的存储重进行 ... 
- android.util.Log常用方法
			android.util.Log常用的方法有以下5个: Log.v() Log.d() Log.i() Log.w() 以及 Log.e() .根据首字母分别对应VERBOSE,DEBUG,INFO, ... 
- 某直播App问题分析
			某直播App问题分析 一. 出现问题 观看自己开播的直播间,经常出现卡顿,而且画面一卡6,7s,重新播放时会出现跳帧,卡顿频率也较高,导致该App可用性极低. 二. 分析 1. 直播架构分析 根据lo ... 
- 设计模式(三)—代理模式
			目录: 一.概述 二.静态代理 三.动态代理 四.静态代理和动态代理的区别 一.概述 代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对 ... 
- PAT 1047
			1049. Counting Ones (30) The task is simple: given any positive integer N, you are supposed to count ... 
- 第一章   oracle数据库基础
			第一章 oracle数据库基础 1.oracle简介-->数据库管理系统 1.1:数据库 1.2:全局数据库名 1.3:数据库实例 1.4:表空间 1.5:数据 ... 
- 【HDOJ 1286】找新朋友
			找新朋友 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submissi ... 
- (function($){….})(jQuery)一种js插件写法
			我们先看第一个括号里边的内容:function($){….},这不就是一个匿名的函数吗?但是它的形参比较奇怪,是$,这里主要是为了不与其它的库冲突. 这样我们就比较容易理解第一个括号内的内容就是定义了 ... 
