Windows下配置nginx+php(wnmp)

2023-10-26

Windows下配置nginx+php(wnmp) - waynewuzhenbo - 博客园  http://www.cnblogs.com/wuzhenbo/p/3493518.html


Windows下配置nginx+php(wnmp)

第一部分:准备工作。(系统:Windows 8.1, win10+php5.5+nginx1.11测试成功)

1.首先是下载软件。

NGINX-1.3.8官网下载:http://nginx.org/en/download.html

PHP5.4.8版本下载地址:http://windows.php.net/download/

Mysql5.5.28版本下载地址:http://www.mysql.com/downloads/mysql/

2.安装mysql软件。

 

3.解压NGINX和PHP到你自己安装位置。这里我在C盘新建一个文件夹:wnmp(windows,ngnix,myspq,php),把下面的软件安装到这个文件夹里面。

NGINX目录C:\wnmp\nginx

PHP目录C:\wnmp\php

 

第二部分:安装nginx

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

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

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

 

第三部分:安装php(这里主要讲nginx配置启动php,以cgi运行php)

nginx配置文件是conf文件夹里的nginx.conf

1.修改大概第43~45行之间的

 

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

 

修改网站文件的路径,以及添加index.php的默认页。

        location / {
            root   D:/wnmp/nginx-1.5.8/html;
            index  index.html index.htm inde.php;
        }

 

2.支持php的设置

 

修改大概在第63-71行的

        # 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;
        #}

 

先将前面的“#”去掉,同样将root  html;改为root  C:/wnmp/nginx-1.5.8/html;。再把“/scripts”改为“$document_root”(重要),这里的“$document_root”就是指前面“root”所指的站点路径,这是改完后的:

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        
        location ~ \.php$ {
            root           C:/wnmp/nginx-1.5.8/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

 

3.C:\wnmp\php\ext(即php安装目录)修改php.ini-development文件,将文件名修改为php.ini,打开php配置文件php.ini,保存即可。  (按照下面修改即可)

搜索“extension_dir”,找到: e;xtension_dir = "ext" 先去前面的分号再改为 extension_dir = "C:\wnmp\php\ext"

搜索“date.timezone”,找到:;date.timezone = 先去前面的分号再改为 date.timezone = Asia/Shanghai

搜索“enable_dl”,找到:enable_dl = Off 改为 enable_dl = On

搜索“cgi.force_redirect” ;cgi.force_redirect = 1 先去前面的分号再改为 cgi.force_redirect = 0

搜索“fastcgi.impersonate”,找到: ;fastcgi.impersonate = 1 去掉前面的分号

搜索“cgi.rfc2616_headers”,找到:;cgi.rfc2616_headers = 0 先去前面的分号再改为 cgi.rfc2616_headers = 1

 

搜索“php_mysql”,找到:”extension=php_mysql.dll和extension=php_mysqli.dll  去掉前面的“;”extension=php_mysql.dll和extension=php_mysqli.dll   (支持MYSQL数据库)(本来php安装目录的ext目录下就有这几个dll, 所以可以放心修改)

 

其他的配置请按照自己的需求更改。

 

第三部分试运行以及编辑运行配置文件

C:\wnmp\php-5.5.7-nts-Win32-VC11-x86>php-cgi.exe -b 127.0.0.1:9000 -c C:\wnmp\php-5.5.7-nts-Win32-VC11-x86\php.ini(如果修改的php.ini还是在php安装目录的根目录, 则可以省略掉加粗文字)

重新运行nginx.exe。(任务管理器结束进程然后再运行nginx.exe即可)

 

 

C:\wnmp\nginx-1.5.8\html下新建一个phpinfo.php,

<?php phpinfo(); ?>

 

访问http://localhost/phpinfo.php

或者http://127.0.0.1/phpinfo.php

出现如下的信息就说明php已经成功安装:

 


三. 碰到的问题

1. No log handling enabled - turning on stderr logging

启动php-cgi过程中,如果报出这个错误,请把php.ini配置文件中的extension=php_snmp.dll注释掉。

2. 端口占用

Cannot bind/listen socket - [2] No such file or directory.

Couldn't create FastCGI listen socket on port 127.0.0.1:9000

启动php-cgi过程中,如果报类似这种错误,就表示9000端口被占用了,此时,我们可以换个端口试试。

3. 反向代理404 not found

以反向代理的方式访问php时,出现404 Not Found错误,这种情况,我们需要修改nginx的error_page配置项,如下:

将原来默认的error_page注释掉

[plain]  view plain  copy
  1. #error_page  404              /404.html;  

然后,重新定义error_page,如下:

[plain]  view plain  copy
  1. error_page 404 @proxy;  

@proxy对应的内容为:

[plain]  view plain  copy
  1. location @proxy {  
  2.         proxy_set_header Host $http_host;  
  3.         proxy_set_header X-Real-IP $remote_addr;  
  4.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  5.   
  6.         proxy_pass http://127.0.0.1;  
  7.     }  

保存后,重启nginx即可解决404 Not Found错误。

友情提醒:以反向代理的方式访问php时,就不需要配置php-cgi模块了。




(如果不介意上面通过cmd运行php-cgi.exe, nginx.exe, 可以看下面教程)

下载一个RunHiddenConsole.exe,百度网盘

开启php-cgi和nginx.exe,保存为start.bat

 

@echo off
echo Starting PHP FastCGI...
C:\wnmp\nginx\RunHiddenConsole.exe C:\wnmp\PHP\php-cgi.exe -b 127.0.0.1:9000-c D:\PHP\php.ini
echo Starting nginx...
C:\wnmp\nginx\RunHiddenConsole.exe D:/nginx/nginx.exe -p D:/nginx

 

 

停止php-cgi和nginx.exe,保存为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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows下配置nginx+php(wnmp) 的相关文章

  • php/mysql 搜索多个值

    我有一个带有 国家 城市 地区 已发布 字段的表格 我有一个搜索表单 人们可以在其中输入国家 城市或地区 我想要获取所有已发布的房屋 1 并且任何搜索词都与其任何字段相匹配 这是我到目前为止所拥有的 SELECT FROM homes WH
  • 检查 DST 是否生效

    In PHP date I 会告诉我夏令时是否有效 这是否告诉我 DST 是否专门针对我的服务器配置的时区有效 或者是否在有效期间 我在亚利桑那州 那里不遵守夏令时 因此 我需要我的服务器认识到纽约现在比我早 2 小时 但是当明年 3 月夏
  • 将图像裁剪或遮罩成圆形

    使用 ImageMagick 或 GD 库将图像裁剪或遮罩成圆形形状的最佳方法是什么 请注意 解决方案存在于 其他 问答网站上 但不存在于 StackOverflow 上 这是使用 ImageMagick 的一种方法 无需使用遮罩即可实现此
  • 如何以编程方式获取亚马逊卖家中心订单?

    我们一直手动将亚马逊订单输入我们的系统 并希望将其自动化 但是 我似乎不知道该怎么做 他们的文档几乎不存在 有 亚马逊库存管理 AIM API 用于管理订单和库存 事件通知服务 ENS API 获取订单通知 卖家中心 SOAP API 上传
  • 如何在symfony2中提交表单ajax?

    我即将使用 Ajax 提交我的表单 我已使用 Ajax 成功提交我的表单POST但不知道如何使用 AjaxSymfony builform builder gt add name text array constraints gt arra
  • Yii 间接修改重载属性

    winnerBid Bids model gt find criteria 模型有以下关系 public function relations return array item gt array self BELONGS TO Goods
  • 通过 PHP 发送的 HTML 电子邮件在 Gmail 中被视为垃圾邮件

    我有以下 php 脚本 它从服务器上的 txt 文件加载 html 模板 并在发送电子邮件之前使用 str replace 用电子邮件内容填充模板 起初 我尝试将服务器上的 Webmail 地址硬编码到 mailer send 函数的 收件
  • PDOStatement 到 JSON [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我将如何转换PDOStatement到 JSON 我需要 jsonifyPDO FETCH OBJ json encode没有能力 j
  • 使用 PHP GD 将文本置于图像中心

    所以我正在创建一个横幅生成器 我将在中间添加文本 但希望它正好位于中心 我知道imagettftext可以用来在横幅上书写 但这不会使其居中 一个可能的解决方案可能是找到文本的宽度 然后使用从横幅宽度的一半中取出的一半 但我不知道如何做到这
  • PHP echo 与 PHP 短 echo 标签

    它们的安全性相同吗 我被告知使用 或者 当在 JavaScript 内回显数据时 它必须是 JavaScript 编码的
  • 使用 htmlspecialchars 和 htmlentities 转换特殊字符

    我现在对向数据库中注入特殊字符感到困惑 例如 我想接受这样的字符 等 我想在 html 上显示它们 例如L ic这是一个法国名字 我想我必须将这些特殊字符转换为 html 实体 然后再将它们注入数据库 例如 ouml for 如果我使用ht
  • Cookie 中应保存什么类型的信息 (PHP)

    我正在制作一个登录 注销类 用于登录用户 根据用户的选择设置 cookie 用户输入他们的电子邮件 密码 它会检查数据库 电子邮件 密码组合是否存在 创建会话 设置 cookie 使用用户 ID 然后重定向用户 然后我有一个记录用户的功能通
  • 基于复选框构建 SQL 查询

    假设我有一个表单 其中有 30 个与音乐流派相对应的复选框 它提交给 PHP 表单处理程序 我有一个艺术家表 其中有一个流派字段 构建具有以下行为的查询的最佳实践是什么 从艺术家中选择名称 其中genreid 1 ORgenreId 2 O
  • PHP shell_exec() 与 exec()

    我正在努力理解之间的区别shell exec and exec 我一直用exec 执行服务器端命令 我什么时候使用shell exec Is shell exec 只是一个简写exec 似乎参数更少 效果是一样的 shell exec以字符
  • 使用 PHP json_encode() 和 MySQL 返回 JSON 对象以传递给 jQuery 函数 [重复]

    这个问题在这里已经有答案了 我正在尝试从 MySQL 结果创建一个 json 对象 但没有得到我需要的结果 这是 PHP json array result mysqli query connection query echo while
  • PHP readdir 和排序

    我正在做一个小画廊 我想从目录中读取文件名 并在删除一些前导数字和文件扩展名后打印下面的文件名 我有两个版本的代码 版本 1 不排序 current dir DOCUMENT ROOT weddings2 dir opendir curre
  • AngularJS 阻止 symfony2 表单中的提交按钮

    我在 symfony2 中创建了表单 最后呈现了提交表单的按钮 当我添加ng app myApp 一切正常 但我无法提交此页面上的表单 为什么会这样以及如何解锁 FORM gt add company choice array mapped
  • 使用php动态地将内容插入到pdf文件中

    我有一本 Word 电子书 在分发给客户之前我将其转换为 PDF 我想将他们的电子邮件地址动态插入到电子书中的所有链接中 以允许他们访问我网站上的会员专用内容 并且我想作为图书下载过程的一部分动态执行此操作 我简单地看了一下http us
  • DRY:如何在 Symfony2 项目的多个实体中使用此代码?特质?

    我有一段重复的代码 将在我的 Symfony2 项目中的多个实体中使用 因此应用某种 DRY 就可以了 当然如果可能的话 我正在考虑PHP 特性 http php net manual en language oop5 traits php
  • 在 header("Location: ") 调用后是否调用 exit 有关系吗?

    我似乎无法找到答案 直到我发现这个帖子 http www php net manual en function exit php 90713 on exit在 php net 上 发送 Location 标头 PHP 后will继续解析 h

随机推荐

  • 用位运算实现两个整数的加减乘除运算

    位运算的思想可以应用到很多地方 这里简单的总结一下用位运算来实现整数的四则运算 1 整数加法 int Add int a int b for int i 1 i i lt lt 1 if b i for int j i j j lt lt
  • 网络七层及四层协议通俗详解

    1 OSI开放式网络七层协议模型 总体而言 理解记忆 我点击一个网络请求 假如使用http协议 这就是应用层 用户选择具体的协议 这个请求需要传输数据 但是不同系统因为编码等方式不同 无法识别彼此发送的消息 这个时候表示层就需要把数据整理成
  • 《剑指offer》读后感

    帮研二的学姐准备网易暑期实习的机试时 代码提交在一个OJ网站叫牛客网 出于好奇就多点了一下这个网站 看到 剑指offer 的在线编程专栏 就是把剑指offer中的题目都挂在了网上 可以在线判断是否AC 以前也总是听到学长们推荐该书 索性趁着
  • R语言实现样本量的估算(2)

    本文默认 0 05 sig level 0 2 power 根据研究需要可调整 导入包 library pwr 1 已知标准差和预期差异 1 单样本t检验 某治疗措施预期提高某物质水平8mg L 标准差为10mg L 单样本t检验 pwr
  • QVector用法详细介绍

    QVector类是动态数组的模板类 顺序容器 它将自己的每一个对象存储在连续的内存中 可以使用索引号来快速访问它们 使用前需要包含头文件 include
  • iOS(二)App第一次启动时出现的引导界面

    我们每次打开一个刚刚从AppStore下载下来的软件时 总会出来一个引导界面 有的是宣传产品 有的是介绍App的功能 最后再出来一个按钮正式进入到App 从此以后这个引导界面就再也不会出现了 除非你卸载重装 在查阅相关资料后 做了个简陋的引
  • 逆向爬虫06 bs4,xpath,pyquery实战

    逆向爬虫06 bs4 xpath pyquery实战 原本想要详细的对比一下这三个模块的使用方法 但是在实战的时候发现 只要遵循一个套路 抓取静态网页 即网页信息直接放在html源代码中 就比较容易了 一些使用细节上的问题 每个人遇到的都会
  • Unity Hub、unity、PlasticSCM安装

    目录 一 Unity Hub安装 二 Unity安装 三 PlasticSCM安装 一 Unity Hub安装 第一步 进入官网下载 地址 地址 第二步 安装 跟着提示走就行 二 Unity安装 第一步打开Unity Hub 激活许可证 点
  • 打印机服务器纸张属性不显示,为什么我的打印机能在打印机服务器属性里设置自定义纸张大小,却无法? 爱问知识人...

    问题原因及解决方法 在以往的Windows 98操作系统中 打印机属性里的 纸张大小 中有 自定义 一项 而Windows 2000和Windows XP中自定义的位置是不同于Windows 98的 这里用一个示例来表述 假定用户使用了一款
  • VMware中安装CentOS7

    在VMware中安装CentOS7 01 目录 CentOS7的下载 CentOS7的配置 CentOS7的安装 CentOS7的网络配置 自动获取IP 固定获取IP 02 安装前提 准备工作 提前下载和安装好VMware 下载centos
  • 环境扫描/透射电子显微镜气体样品架的真空压力和微小流量控制解决方案

    摘要 针对环境扫描 透射电子显微镜对样品杆中的真空压力气氛环境和流体流量精密控制控制要求 本文提出了更简单高效和准确的国产化解决方案 解决方案的关键是采用动态平衡法控制真空压力 真空压力控制范围为1E 03Pa 0 7MPa 采用压差法控制
  • Using Java to create customized virtual machine clones on VMWare infrastructure

    Hello Quite a while ago I was given a task to create a java module which would be able to create customized clones from
  • python制作词云图

    准备基础模块 matplotlib 数据可视化模块 numpy 数值计算模块 jieba 分词模块 wordcloud 词云模块 Pillow PIL 图像处理模块 同时准备遮罩图和文本信息 实现代码 导入matplotlib模块pyplo
  • 数据挖掘学习之路二:数据预处理方法概述

    主要是将数据中缺失的数据补充完整 消除噪声数据 识别和删除离群点并解决不一致性 主要达到的目标是 将数据格式标准化 异常数据清除 错误纠正 重复数据清除 A 异常数据处理 分析异常数据 1 使用统计值进行判断 最大值 最小值 平均值等判断是
  • C++中的++i 与 i++详解

    一 区别 i 与 i 的主要区别有两个 1 i 返回原来的值 i 返回加1后的值 2 i 不能作为左值 而 i 可以 二 原理 毫无疑问大家都知道第一点 我们重点说下第二点 首先解释下什么是左值与右值 通俗地说 以赋值符号 为界 左边的就是
  • CUDA小白 - NPP(6) 图像处理 Geometry Transforms (2)

    cuda小白 原始API链接 NPP GPU架构近些年也有不少的变化 具体的可以参考别的博主的介绍 都比较详细 还有一些cuda中的专有名词的含义 可以参考 详解CUDA的Context Stream Warp SM SP Kernel B
  • npm包的发布和删除

    登录npm发布包 1 终端 输入npm login 可以登录npm账号 依次输入用户名 密码 密码盲打 邮箱 2 输入nrm use npm通过命令更改npm服务 需将npm切换为npm官方服务 不能使用taobao镜像 注 可以通过npm
  • 基于虚拟机的集群冗余简化

    为了实现高可用性 企业使用中间软件例如微软和 Veritas 的集群软件 把两台服务器绑定在一个热备环境 即使运行在服务器上的应用程序有集群 感知能力 万一主服务器遭遇硬件或软件错误 这样的安排仍然会导致非应 用程序当机 冗余能消除单点失败
  • 面经——嵌入式软件工程师ARM体系与架构相关

    参考 嵌入式软件工程师笔试面试指南 ARM体系与架构 作者 嵌入式与Linux那些事 发布时间 2021 04 28 15 22 06 网址 https blog csdn net qq 16933601 article details 1
  • Windows下配置nginx+php(wnmp)

    Windows下配置nginx php wnmp waynewuzhenbo 博客园 http www cnblogs com wuzhenbo p 3493518 html Windows下配置nginx php wnmp 第一部分 准备