刚刚开始学习PHP时,一直使用phpstudy,后面发现很多东西自己单独配置安装会理解更深刻,所以自己总结了一下windows下开发环境的部署教程。

以前经常在CSDN和博客园看别人的教程,今天才注册博客园帐号,开通博客功能,第一次在网上分享自己的经验,写的不好的地方欢迎大家指正。

安装Nginx

首先在C盘根目录创建一个wnmp文件夹,在该文件夹里面创建一个www文件夹

访问http://nginx.org/en/download.html,下载nginx的Stable version,解压到wnmp里面,重命名为nginx

在C:\wnmp\nginx\conf目录下创建vhost文件夹

打开C:\wnmp\nginx\conf\nginx.conf

修改或添加如下配置

#打开错误日志记录
error_log logs/error.log;
error_log logs/error.log notice;
error_log logs/error.log info;
pid logs/nginx.pid; #配置nginx根目录
location / {
  root C:/wnmp/www;
  index index.html index.htm;
  autoindex on;
  autoindex_exact_size off;
  autoindex_localtime on;
} #让nginx支持PHP的设置
location ~ \.php$ {
  root C:/wnmp/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#这里$document_root指的是上面定义好的nginx根目录:C:/wnmp/www
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
} #在http里面加入下面这一行扩展配置
include vhost/*.conf;

安装PHP

访问 https://windows.php.net/downloads/releases/

选择你要安装的php版本,我一般选下图中的箭头指向的那种nts的

最近尝试安装 php7.3.1 发现openssl版本可能影响到了composer安装,安装composer时错误提示如下:
composer SHA384 is not supported by your openssl extension
openssl版本好像是是1.1.1a
不得已重装了7.2,欢迎知道原因的大神解惑!

下载后解压到wnmp\php文件夹中

将php.exe目录添加进环境变量path,方便全局使用php命令。

复制php.ini-development重命名为php.ini

修改或添加如下配置,视自己情况而定

extension_dir = "C:\wnmp\php\ext"
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mysqli.dll
extension=php_openssl.dll
extension=php_pdo_mysql.dll
date.timezone = Asia/Shanghai
enable_dl = On
cgi.force_redirect = 0
fastcgi.impersonate = 1
cgi.rfc2616_headers = 1

关联nginx和php

在C:\wnmp\nginx目录下创建start.bat内容如下

PS:下面代码里面的   RunHiddenConsole.exe    文件也是在这个目录下,目的是为了开启服务后自动隐藏命令行窗口

但是这里我不知道怎么上传这个文件。。。。。欢迎评论留言

RunHiddenConsole.exe C:\wnmp\nginx\nginx.exe
echo nginx started
RunHiddenConsole.exe C:\wnmp\php\php-cgi.exe -b 127.0.0.1:9000 -c C:\wnmp\php\php.ini
echo php started
echo .......

在C:\wnmp\nginx目录下创建stop.bat内容如下

@ECHO OFF
taskkill /f /IM nginx.exe
taskkill /f /IM php-cgi.exe
EXIT

目录结构如下

此时双击start.bat可以开启nginx和php服务

双击stop.bat可以关闭这两个服务

在www目录下新建php脚本  <?php echo phpinfo();?>

运行start.bat 访问http://127.0.0.1/ 如下

点击info.php可查看PHP安装信息,这里就不截图了。

现在PHP和NGINX安装好了,接下来安装MYSQL。

 安装MYSQL

访问https://dev.mysql.com/downloads/windows/installer/8.0.html

直接下载最新的8.0版本,建议下载完整的安装包。

具体的安装步骤我参考的这个

https://blog.csdn.net/clouderpig/article/details/79556149

在安装mysql8的时候如果选择了密码加密,之后用客户端连接比如navicate,

会提示客户端连接caching-sha2-password,是由于客户端不支持这种插件

可以通过如下方式进行修改:

#在命令行连接mysql,执行如下命令
  show databases;
  use mysql;
#修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
#更新密码(mysql_native_password模式)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
#刷新权限
  flush privileges;

现在可以用navicate去连接数据库。

到这里WNMP环境安装就大功告成啦。

WIN10下WNMP开发环境部署的更多相关文章

  1. 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  2. VMware下Debian开发环境部署之常见问题记录

    本文讲介绍windows作为宿主机,linux虚拟机作为编译环境的开发环境搭建中最常用到的三个问题,详细描述了解决过程. 目录: 1.网路配置: 2.分辨率设置: 3.共享网盘设置: 1.网络设置,V ...

  3. windows下go开发环境部署 (sublime+gosublime+geocode)

    1.下载git.go和sublime免安装版 go下载地址:http://pan.baidu.com/s/1hq1mrDM#path=%252Fgo%252F1.5.2sublime下载地址:http ...

  4. IntelliJ IDEA Windows下Spark开发环境部署

    0x01 环境说明 本地 OS: windows 10 jdk: jdk1.8.0_121 scala: scala-2.11.11 IDE: IntelliJ IDEA ULTIMATE 2017. ...

  5. Win10下Java开发环境配置

    首先下载符合操作系统版本的jdk,比如64位的JDK8: 下载链接:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-down ...

  6. golang在linux下的开发环境部署[未完]

    uname -a Linux symons_laptop 4.8.2-1-ARCH #1 SMP PREEMPT Mon Oct 17 08:11:46 CEST 2016 x86_64 GNU/Li ...

  7. 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  8. linux 下 ifcfg-eth0 配置/CentOS_minimal安装和开发环境部署

    CentOS_minimal安装和开发环境部署:http://www.th7.cn/system/lin/201305/39002.shtml 网络接口配置文件 [root@localhost ~]# ...

  9. 一个CentOS7的开发环境部署,包括防火墙|VPN|多IP多网关|HTTP代理服务器设置等

    http://www.lenggirl.com/code/centos7.html layout: post title: "一个CentOS7的开发环境部署,包括防火墙|VPN|HTTP代 ...

随机推荐

  1. AdvStringGrid入门使用

    仅仅把数据从数据库中显示到AdvStringGrid中 procedure TForm1.btnQueryClick(Sender: TObject); var i, j: Integer; begi ...

  2. Java中的volatile关键字的功能

    Java中的volatile关键字的功能 volatile是java中的一个类型修饰符.它是被设计用来修饰被不同线程访问和修改的变量.如果不加入volatile,基本上会导致这样的结果:要么无法编写多 ...

  3. MVC的验证(模型注解和非侵入式脚本的结合使用)

    @HtmlHrlper方式创建的标签,会自动生成一些属性,其中一些属性就是关于验证 如图示例: 模型注解 通过模型注解后,MVC的验证,包括前台客户端,后台服务器的验证,MVC统统都做了包含,即使用户 ...

  4. CI框架, 参数验证

    /** * 统一API参数检验方法 * * 调用示例 check_param(array('money' => array('required', 'integer', 'greater_tha ...

  5. CVE-2013-3897漏洞成因与利用分析

    CVE-2013-3897漏洞成因与利用分析 1. 简介 此漏洞是UAF(Use After Free)类漏洞,即引用了已经释放的内存.攻击者可以利用此类漏洞实现远程代码执行.UAF漏洞的根源源于对对 ...

  6. 【设计模式最终总结】桥接模式 VS 外观模式

    差异点 外观模式,是把功能通过一个接口提供出来,方便日后更换实现,或者这种实现可以由多方提供,但同时只用一个.典型例子:@Slf4j 桥接模式,多个维度,每个维度提供一个接口,这些接口集中在一个类中, ...

  7. python UI自动化实战记录五:测试页面2 pageobject

    该部分记录测试页面2-StrategyPage,所有页面2上的元素定位.操作.获取属性等方法都写在该类中. 1 页面2继承自BasePage: 2 页面2第一部分写的是所有的定位器 3 页面2第二部分 ...

  8. Json 和 Jsonlib 的使用

    什么是 Json JSON(JvaScript Object Notation)(官网网站:http://www.json.org/)是 一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解 ...

  9. PhoneGap 的文件 api

    一. 文件系统的请求 请求文件系统通过 window.requestFileSystem 来完函数声明如下: window.requestFileSystem(type, size, successC ...

  10. Task ‘run’ not found in root project

    问题现象: Task 'run' not found in root project 'springframework'. 问题原因: 没有在gradle.build文件中添加如下配置, mainCl ...