Windows下Nginx+Mysql+Php(wnmp)环境搭建

前言

 最近想在windows下使用nginx搭建web环境,本来想用套件(WNMP)一键安装,但后来放弃了,觉得还是自己动手,丰衣足食的好,而且套件的局限性太大。所以后来就各种搜索,看到前辈写关于wnmp环境的搭建,虽是感觉千篇一律,不过对我这个新手来说,还是有一定的参考价值,非常感谢!但在搭建的过程中,遇到了很多问题,所以决定自己整理一番,以供初学者参考。

Nginx是一个高性能的HTTP和反向代理服务器,同时还是IMAP/POP3/SMTP代理服务器,该程序由俄罗斯Rambler.ru 站点开发,Nginx因为性能稳定、低系统资源消耗而闻名。近几年Nginx在国内已经成炙热化状态,诸多大型网站都已经使用Nginx来做Web服务器,所以学习Nginx还是非常有必要的。

一、首先我们先准备必要的软件:

1.nginx

2.php

3.mysql

4.RunHiddenConsole.exe(作用是在执行完命令行脚本后可以自动关闭脚本,而从脚本中开启的进程不被关闭)

这几个软件我放在百度云盘,大家可以下载 http://pan.baidu.com/s/1bn56geN,也可以联系我索取 991769422@qq.com

注:除了第四个可执行文件,前三个软件大家可根据需要,选择不同版本,具体下载网址大家可以搜索一下

二、解压Nginx和Php到你自己安装位置

  我的是在E盘下首先建立了一个wnmp文件夹,给不同软件创建一个文件夹,结构如下

 注意:目录文件的建立一定不要有中文或者带有空格的目录,否则后面会引来很多不必要的麻烦。例如D:\Program Files\wnmp 是不建议的

三、安装一下mysql文件,具体安装方式,网上有很多,这里就不赘述了

四、安装nginx

1.打开E:\wnmp\nginx目录,运行该文件夹下的nginx.exe

2.测试是否启动nginx。打开浏览器访问http://localhost 或 http://127.0.0.1,看看是否出现“Welcome to nginx!”,出现的证明已经启动成功了。没有启动的话,看看80端口有占用没。

注意:该网站的默认目录在“E:\wnmp\nginx\htm”l下

五、配置PHP文件

1.打开E:\wnmp\php\目录,修改php.ini-development文件,将文件名修改为php.ini;

2.打开php配置文件php.ini,对一些地方进行修改

(1)找到: ;extension_dir = "ext" ,修改为   extension_dir = "E:\wnmp\php\ext"

(2)找到:;date.timezone = ,        修改为   date.timezone = Asia/Shanghai

(3)找到: enable_dl = Off             修改为   enable_dl = On

(4)找到: ;cgi.force_redirect = 1   修改为   cgi.force_redirect = 0

(5)找到: ;fastcgi.impersonate = 1   修改为   fastcgi.impersonate = 1

(6)找到: ;cgi.rfc2616_headers = 0   修改为   ;cgi.rfc2616_headers = 1

以下修改是php扩展文件,根据自己的需求,只需要把前面分号去掉就行

;extension=php_bz2.dll ;extension=php_curl.dll ;extension=php_fileinfo.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_mysql.dll ;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_pspell.dll ;extension=php_shmop.dll

;extension=php_snmp.dll

;extension=php_soap.dll ;extension=php_sockets.dll ;extension=php_sqlite3.dll ;extension=php_sybase_ct.dll ;extension=php_tidy.dll ;extension=php_xmlrpc.dll ;extension=php_xsl.dll

注:(支持MYSQL数据库的扩展)

extension=php_mysql.dll

extension=php_mysqli.dll   

六、nginx配置启动php,以cgi运行php

1.打开E:\wnmp\nginx\conf目录,修改nginx.conf文件

把这个地方

location / {
            root   html;
            index  index.html index.htm;
        }

修改为如下:(修改网站文件的路径,以及添加index.php的默认页)

location / {
            root   E:/www;
            index  index.html index.htm index.php;
        }

其中 root E:/www; 是我以后要放web项目的地方,这个可以根据自己的喜好,自己来定

2.支持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:9000
        #
        location ~ \.php$ {
            root           E:/www;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

其中  这里的“$document_root”就是指前面“root”所指的站点路径

七、创建启动、停止的批处理文件。

1.把下载好的 RunHiddenConsole.exe 可执行文件放到E:\wnmp\nginx目录下,同时创建两个strat.bat文件和stop.bat文件,如下图

2.打开start.bat文件,粘贴一下代码

@echo off

echo Starting PHPFastCGI...

RunHiddenConsole E:/wnmp/php/php-cgi.exe -b 127.0.0.1:9000 -c E:/wnmp/php/php.ini

echo Starting nginx...

RunHiddenConsole E:/wnmp/nginx/nginx.exe

PAUSE

3.打开stop.bat文件,粘贴一下代码

@echo off

echo Stopping nginx...

taskkill /F /IM nginx.exe > nul

echo Stopping PHP FastCGI...

taskkill /F /IM php-cgi.exe > nul

exit

八、测试

1.双击start.bat启动服务进程,进程管理器有两个nginx.exe的进程和一个php-cgi.exe的进程。

这样nginx服务就启动了,而且php也以fastCGI的方式运行了。

到自己的站点目录下,我的是E:/www,

在该目录下新建一个phpinfo.php的文件,在里面编辑

<?php
    phpinfo();
?>

保存后,打开浏览器输入“http://localhost/phpinfo.php”,如果看到

就说明,nginx+php的环境已经大功告成!

九、关闭服务进程

双击stop.bat关闭服务进程

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏linux运维学习

linux学习第六十篇:Linux监控平台介绍,zabbix监控介绍,安装zabbix,忘记Admin密码如何做

Linux监控平台介绍 常见开源监控软件:cacti、nagios、zabbix、smokeping、open-falcon等等 cacti、smokeping...

41140
来自专栏搜云库

Spring Cloud(二)Consul 服务治理实现

Spring Cloud Consul 项目是针对Consul的服务治理实现。Consul是一个分布式高可用的系统,具有分布式、高可用、高扩展性。 Consul...

59980
来自专栏信安之路

在渗透中curl的常见用法

curl是利用URL语法在命令行方式下工作的开源文件传输工具。其功能以及参数非常多,然而,我们在渗透测试中可以用curl做什么呢?下面就举例说一下,欢迎大家拍砖...

8800
来自专栏蓝天

cron 的配置和说明

作者:北南南北 来自:LinuxSir.Org 摘要:Linux操作系统中,计划任务通常由cron来承担,了解或掌握cron,能为我们管理服务器带来更多的便利,...

12220
来自专栏邹立巍的专栏

Linux 的进程间通信:管道

管道,英文为 pipe 。这是一个我们在学习 Linux 命令行的时候就会引入的一个很重要的概念。管道是UNIX 环境中历史最悠久的进程间通信方式。本文主要说明...

1K20
来自专栏小樱的经验随笔

hihoCoder 1051 补提交卡(贪心,枚举)

#1051 : 补提交卡 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho给自己定了一个宏伟的目标:连续100天每天坚持在hi...

36260
来自专栏用户2442861的专栏

Nginx工作原理和优化、漏洞。

http://blog.csdn.net/hguisu/article/details/8930668 (排名100多bolg写的很好)

1.5K20
来自专栏生信技能树

史上最全​Git使用手册

Git使用手册 目录: Git是什么 基本概念 Git的诞生 Git的安装与配置 创建版本库 Git操作略览 远程仓库:git的杀招 分支管理 便签管理 使用g...

36250
来自专栏小特工作室

微信小程序开发填坑指南V1

近期用了一星期的时间,开发了一个小程序。小程序名称是:小特Jarvis,取自钢铁侠的管家。

21960
来自专栏黑白安全

Zeus-Scanner 宙斯漏洞扫描器 一款开源漏洞扫描工具

宙斯是一种先进的侦察工具,旨在简化Web应用程序侦察。Zeus拥有强大的内置URL解析引擎,多种搜索引擎兼容性,能够从禁用和webcache URL中提取URL...

1.3K40

扫码关注云+社区

领取腾讯云代金券