建站系列(八)--- 本地开发环境搭建(WNMP)

目录

  • 相关系列文章
  • 前言
  • 一、准备工作
  • 二、Nginx安装
  • 三、MySQL安装
  • 四、PHP安装及Nginx配置
  • 五、总结

相关系列文章

建站系列(一)— 网站基本常识
建站系列(二)— 域名、IP地址、URL、端口详解
建站系列(三)— 网络协议
建站系列(四)— Web服务器之Apache、Nginx
建站系列(五)— 前端开发语言之HTML、CSS、JavaScript
建站系列(六)— 后端开发语言
建站系列(七)— 常用前后端框架
建站系列(八)— 本地开发环境搭建(WNMP)

前言

本篇文章以WNMP(Windows+Nginx+MySQL+PHP)环境为例。

一、准备工作

  • (1)拥有一个Windows操作系统,本文所用系统Windows10
  • (2)Nginx下载:https://nginx.org/en/download.html (建议下载稳定版本)
  • (3)MySQL下载:https://www.mysql.com/downloads/
  • (4)PHP下载:https://windows.php.net/download/
    在这里插入图片描述

二、Nginx安装

  • (1)直接将下载好的Nginx安装包解压到目标目录(自己选择安装目录,路径不要含中文),重命名为Nginx
    ![2.png][3]

  • (2)进入Nginx目录直接双击Nginx.exe即可启动Nginx或者进入cmd使用命令start nginx(停止命令为:nginx -s stop),启动后进入浏览器访问localhost(127.0.0.1)会有如下界面
    ![3.png][4]

三、MySQL安装

  • (1)选择安装方式Server only
    ![4.png][5]

  • (2)后续无特殊说明的均直接next
    ![5.png][6]

  • (3)这一步很重要!!!一定要选第二个!
    ![6.png][7]

  • (4)输入root密码,自己要牢记
    ![7.png][8]

  • (5)默认即可,如果有黄色感叹号,需修改名称
    ![8.png][9]

  • (6)如图,点击后需等待一会
    ![9.png][10]

  • (7)后续直接下一步直至安装完成
    ![10.png][11]

  • (8)验证一下是否安装成功,打开刚刚安装的mysql命令行客户端,输入刚设置的密码
    ![11.png][12]

  • (9)若出现如下信息则安装成功
    ![12.png][13]

四、PHP安装及Nginx配置

  • (1)解压到目标目录
    ![13.png][14]

  • (2)复制一份php.ini-development改名为php.ini放到安装路径下
    ![14.png][15]

  • (3)将php.ini打开直接添加如下内容,extension_dir = “你的PHP安装路径\ext”

cgi.fix_pathinfo=1
cgi.force_redirect = 0
fastcgi.impersonate = 1
cgi.rfc2616_headers = 1
extension_dir = "C:\software\wnmp\php\ext"

![15.png][16]

  • (4)打开cmd并进入到PHP安装目录(建议直接配置一下PHP的环境变量,方便全局执行),执行命令:php-cgi.exe -b 127.0.0.1:9000 -c 你的PHP安装路径,注意执行后这个cmd窗口不要关闭
php-cgi.exe -b 127.0.0.1:9000 -c C:\software\wnmp\php
  • (5)修改nginx.conf文件(在Nginx安装目录下的conf文件夹下,修改前建议备份,防止出错),找到配置文件中的如下内容,并修改或添加
location / {root   html;index  index.html index.php index.htm;#这里添加index.php}location ~ \.php$ {root           html;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;# fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#这一部分前面的#号全部去掉,并将上面这一句改为下面这一句,否则会报运行PHP文件No #input file specified错误fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include        fastcgi_params;}
  • (6)重启Nginx,此时在html文件夹下放入PHP文件便可以通过浏览器正常访问了,大功告成

五、总结

开发环境的搭建并非一个简单的过程,中间可能会遇到非常多的问题,对于新手而言建议在虚拟机上先尝试几次防止出现一些不可逆的错误,虽然安装过程比较繁琐但不失于是一次学习的过程,本次系列教程暂时告一段落,但学习的过程还远远没有结束,后续本系列教程将会得到更多的扩充,最后在这里也给各位读者留下一些问题望各位读者可以自行学习解决。

  • 问题一:MySQL数据库如何使用?
  • 问题二:如何修改服务器根目录?(提示:本文是将PHP文件放在html目录,进而通过localhost访问)
  • 问题三:Linux系统下如何搭建开发环境?
  • 问题四:本地Web项目如何实现局域网下不同设备的访问?
  • 问题五:尝试将自己的项目部署到自己的服务器上并实现访问(相信这是一个并不算短的学习过程,前提是你要先把基础学好)
  • 问题六:了解phpstudy和宝塔Linux

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/80032.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【设计模式】二、UML 类图概述

文章目录 常见含义含义依赖关系(Dependence)泛化关系(Generalization)实现关系(Implementation)关联关系(Association)聚合关系(Aggregation)组合关系&#x…

【JavaScript保姆级教程】输出函数和初识变量

文章目录 前言一、输出内容1.1 document.write()函数1.2 console.log()函数查看终端输出信息 1.3 alert()函数 二、变量的使用1.1 变量的声明1.3变量的赋值1.4 变量的声明和赋值 三、输入提示框的使用总结 前言 JavaScript是一种强大的脚本语言,广泛应用于网页开发…

文件批量重命名:自定义命名与扩展名更改

你是否曾经需要批量更改文件名称和类型?如果你有大量文件需要重命名和更改类型,那么今天我们将向你介绍一种简单的方法来轻松批量更改文件名称和类型。无论你是需要将一个文件夹中的所有图片改为另一种格式,还是需要将一个文件夹中的所有文档…

【基于多输出方向的同步异步日志系统】

本项目涉及的到所有源码见以下链接: https://gitee.com/ace-zhe/wz_log 一、项目简介 1.日志的概念(白话版) 日志类似于日记,通常是指对完成某件事情的过程中状态等的记录,而计算机中的日志是指日志数据&#xff0c…

轻松学习 Spring 事务

文章目录 一. Spring事务简介二. Spring事务使用1. 编程式事务2. 声明式事务 三. Transactional的使用1. 参数作用2. 事务失效的场景3. Transactional工作原理 四. Spring 事务的隔离级别五. Spring事务传播机制 一. Spring事务简介 在之前的博客已经介绍了在 Spring 环境中整…

结构体变量的初始化和引用

任务描述 本关任务:从键盘输入两个学生的学号,姓名和成绩(整数),分别存入结构体中,输出成绩较高的学生的学号,姓名和成绩。 相关知识 结构体类型用于描述由多个不同数据类型的数据构成的复合…

浅析安防监控系统/AI视频智能分析算法:河道水文水位超标算法应用

传统的水位水尺刻度尺位监测中,所采用的人工读数方式,效率较为低下且 人工成本较高,不利于作业流程的数字化。尽管感应器检测会自动对水位的模拟输入进行筛选,但是由于成本、使用场景要求高、后续日常维护复杂等多种因素&#xff…

Pytorch实现图像语义分割(初体验)

Pytorch实现图像语义分割(初体验) 这些天在学习图像语义分割相关的知识,并简单写了篇概述。原本想先看几篇经典论文,如全卷积网络FCN,奈何英语水平有限,翻译起来实在费劲。想来不如先直接体验一下语义分割…

vscode c++解决包含头文件红色波浪线问题

安装c/c插件后,按ctrlshiftp, 点击打开了c_cpp_properties.json文件,对其中的IncludePath进行编辑,示例如下: "includePath": ["${workspaceFolder}/**","${workspaceFolder}/include/**&q…

Gin 打包vue或react项目输出文件到程序二进制文件

Gin 打包vue或react项目输出文件到程序二进制文件 背景解决方案1. 示例目录结构2. 有如下问题要解决:3. 方案探索 效果 背景 前后端分离已成为行业主流,vue或react等项目生成的文件独立在一个单独目录,与后端项目无关。 实际部署中,通常前面套…

JDK9特性——模块化REPL工具

文章目录 前言模块化模块化案例 可交互的REPL工具 前言 谈到Java9大家往往第一个想到的就是Jigsaw项目(后改名为Modularity)。众所周知,Java已经发展超过20年(95年最初发布),Java和相关生态在不断丰富的同时也越来越暴露出一些问…

嵌入式入门教学——模电基础概念

目录 1、模拟信号和模拟电路 2、研究领域 3、常用术语 3.1、共价键 3.2、电场 3.3、温度的电压当量 3.4、动态信号 3.5、直流电流和交流电流 3.6、内阻 3.7、信号频率 3.8、电容 3.9、电感 3.10、相位 3.11、信号失真 3.12、电导 3.13、跨导 3.14、电位 3.15…

瑞萨MCU入门教程(非常详细的瑞萨单片机入门教程)

瑞萨MCU零基础入门系列教程 前言 得益于瑞萨强大的MCU、强大的软件开发工具(e studio),也得益于瑞萨和RA生态工作室提供的支持,我们团队编写了《ARM嵌入式系统中面向对象的模块编程方法》,全书37章,将近500页: 讲解面向对象编程…

linux————ansible

一、认识自动化运维 自动化运维: 将日常IT运维中大量的重复性工作,小到简单的日常检查、配置变更和软件安装,大到整个变更流程的组织调度,由过去的手工执行转为自动化操作,从而减少乃至消除运维中的延迟,实现“零延时”…

多线程回顾、集合Collection、Set、List等基本知识

多线程回顾 问: 多线程的两种创建方式? 继承Thread类实现Runnable接口线程池Callable 问:多线程通常会遇到线程安全问题? 什么情况下会遇到线程安全问题? 答:一个数据被多个线程访问(有读有写) 解决这个问题的方式? SE:同步锁 synchronized A : 同步代码块 B : 同步方法…

VisualStudio Code 支持C++11插件配置

问题 Visual Studio Code中的插件: Code Runner 支持运行C、C、Java、JS、PHP、Python等多种语言。 但是它不支持C11特性的一些使用,比如类似错误: binarySearch.cpp:26:17: error: non-aggregate type ‘vector’ cannot be initialized with an ini…

【深度学习】 Python 和 NumPy 系列教程(十):NumPy详解:2、数组操作(索引和切片、形状操作、转置操作、拼接操作)

目录 一、前言 二、实验环境 三、NumPy 0、多维数组对象(ndarray) 1. 多维数组的属性 1、创建数组 2、数组操作 1. 索引和切片 a. 索引 b. 切片 2. 形状操作 a. 获取数组形状 b. 改变数组形状 c. 展平数组 3. 转置操作 a. 使用.T属性 b…

安全实战 | 怎么用零信任防范弱密码?

防范弱密码,不仅需要提升安全性,更需要提升用户体验。 比如在登录各类业务系统时,我们希望员工登录不同系统不再频繁切换账号密码,不再需要3-5个月更换一次密码,也不再需要频繁的输入、记录、找回密码。 员工所有的办…

实验室预约系统设计与实现

实验室预约系统的设计 摘 要 目前各大学的实验项目日益繁多,如何合理预约实验室,已经成为当今各个大学实验室课程预约的难题。因此,这个实验室预约系统就是研究实验室预约的相关问题。实验室预约系统的设计主要是基于B/S模型,在W…

Vector 模拟实现

前言 本文将会向您介绍如何模拟实现vector 引入 Vector是一种动态数组,也是C标准库中的容器之一。它提供了一种存储和操作一系列元素的方式,类似于数组,但具有更多的功能和灵活性。 Vector可以存储不同类型的元素,并且可以根据…