首页 php教程 php手册 windows下配置nginx+php环境

windows下配置nginx+php环境

Jun 14, 2016 am 12:01 AM
nginx php windows 代码 开源 环境 编程 编程语言 软件开发 配置

  刚看到nginx这个词,我很好奇它的读法(engine x),我的直译是“引擎x”,一般引“擎代”表了性能,而“x”大多出现是表示“xtras(额外的效果)”,那么整个词的意思就是类似“极致效果”,“额外性能”。当然这里不是要来唠嗑,以上是题外话。

  nginx相较于我们熟悉的apache、IIS的优势,就我浅入浅出的了解,在于“反向代理”和“负载均衡”。因此考虑到能够为Web服务器节省资源,它可以代替apache来提供Web服务。那么上正题了,nginx有这么多优势,那在windows下如何来配置nginx+php环境?网上看到还是那么多转载来转载去的文章。这里就我配置的过程,来介绍一下:

1、首先需要准备的应用程序包。

  nginx:nginx/Windows-1.0.4

  php:php-5.2.16-nts-Win32-VC6-x86.zip (nginx下php是以FastCGI的方式运行,所以我们下载非线程安全也就是nts的php包)

  (还会用到)RunHiddenConsole:RunHiddenConsole.zip

2、安装与配置。

 1)php的安装与配置。

  直接解压下载好的php包,到D盘wnmp目录(D:\wnmp),这里把解压出来的文件夹重命名成php5。进入文件夹修改php.ini-recommended文件为php.ini,并用Editplus或者Notepad++打开来。找到

<div>
<span style="color: #000000;">extension_dir </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">./ext</span><span style="color: #800000;">"</span>
</div>
登录后复制

更改为

<div>
<span style="color: #000000;">extension_dir </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;">D:/wnmp/php5/ext</span><span style="color: #800000;">"</span>
</div>
登录后复制
往下看,再找到
<div>
<span style="color: #000000;">;extension</span><span style="color: #000000;">=</span><span style="color: #000000;">php_mysql.dll<br>;extension</span><span style="color: #000000;">=</span><span style="color: #000000;">php_mysqli.dll</span>
</div>
登录后复制

前面指定了php的ext路径后,只要把需要的扩展包前面所对应的“;”去掉,就可以了。这里打开php_mysql.dll和php_mysqli.dll,让php支持mysql。当然不要忘掉很重要的一步就是,把php5目录下的libmysql.dll文件复制到C:\Windows目录下,也可以在系统变量里面指定路径,当然这里我选择了更为方便的方法^_^。

到这里,php已经可以支持mysql了。

  接下来我们来配置php,让php能够与nginx结合。找到

<div>
<span style="color: #000000;">;cgi.fix_pathinfo</span><span style="color: #000000;">=</span><span style="color: #800080;">1</span>
</div>
登录后复制

我们去掉这里的封号。

<div>
<span style="color: #000000;">cgi.fix_pathinfo</span><span style="color: #000000;">=</span><span style="color: #800080;">1</span>
</div>
登录后复制
这一步非常重要,这里是php的CGI的设置。

 2)nginx的安装与配置。

  把下载好的nginx-1.0.4的包同样解压到D盘的wnmp目录下,并重命名为nginx。接下来,我们来配置nginx,让它能够和php协同工作。进入nginx的conf目录,打开nginx的配置文件nginx.conf,找到

<div>
<span style="color: #000000;">location </span><span style="color: #000000;">/</span><span style="color: #000000;"> {<br>      root   html;      #这里是站点的根目录<br>      index  index.html index.htm;<br>}</span>
</div>
登录后复制

root  html;改为root   D:/wnmp/www;

再往下,找到

<div>
<span style="color: #000000;"># pass the PHP scripts to FastCGI server listening on </span><span style="color: #800080;">127.0</span><span style="color: #000000;">.</span><span style="color: #800080;">0.1</span><span style="color: #000000;">:</span><span style="color: #800080;">9000</span><span style="color: #000000;"><br>#<br>#location </span><span style="color: #000000;">~</span><span style="color: #000000;"> \.php$ {<br>#    root           html;<br>#    fastcgi_pass   </span><span style="color: #800080;">127.0</span><span style="color: #000000;">.</span><span style="color: #800080;">0.1</span><span style="color: #000000;">:</span><span style="color: #800080;">9000</span><span style="color: #000000;">;<br>#    fastcgi_index  index.php;<br>#    fastcgi_param  SCRIPT_FILENAME  </span><span style="color: #ff0000;">/</span><span style="color: #000000;"><span style="color: #ff0000;">scripts</span>$fastcgi_script_name;<br>#    include        fastcgi_params;<br>#}</span>
</div>
登录后复制

先将前面的“#”去掉,同样将root  html;改为root   D:/wnmp/www;。再把标记为红色的/scripts改为“$document_root”,这里的“$document_root”就是指前面“root”所指的站点路径,这是改完后的:

<div>
<span style="color: #000000;">#</span><span style="color: #000000;"> pass the PHP scripts to FastCGI server listening </span><span style="color: #0000ff;">on</span><span style="color: #000000;"> </span><span style="color: #000000;">127.0</span><span style="color: #000000;">.</span><span style="color: #000000;">0.1</span><span style="color: #000000;">:</span><span style="color: #000000;">9000</span><span style="color: #000000;"><br></span><span style="color: #000000;">#</span><span style="color: #000000;"><br>location ~ </span><span style="color: #000000;">\.</span><span style="color: #000000;">php</span><span style="color: #000000;">$</span><span style="color: #000000;"> {<br>      root           <span style="color: #ff0000;">D:</span></span><span style="color: #ff0000;">/wnmp/www;</span><span style="color: #000000;"><br>      fastcgi_pass   </span><span style="color: #800080;">127.0.0.1<span style="color: #000000;">:</span>9000</span><span style="color: #000000;">;</span><span style="color: #000000;"><br>      fastcgi_index  index</span><span style="color: #000000;">.</span><span style="color: #000000;">php</span><span style="color: #000000;">;</span><span style="color: #000000;"><br>      fastcgi_param  SCRIPT_FILENAME  </span><span style="color: #ff0000;">$document_root</span><span style="color: #000000;">$</span><span style="color: #000000;">fastcgi_script_name</span><span style="color: #000000;">;</span><span style="color: #000000;"><br>      include        fastcgi_params</span><span style="color: #000000;">;</span><span style="color: #000000;"><br>}</span>
</div>
登录后复制

保存配置文件,就可以了。

  nginx+php的环境就初步配置好了,来跑跑看。我们可以输入命令 windows下配置nginx+php环境

来启动php,并手动启动nginx,当然也可以利用脚本来实现。

  首先把下载好的RunHiddenConsole.zip包解压到nginx目录内,RunHiddenConsole.exe的作用是在执行完命令行脚本后可以自动关闭脚本,而从脚本中开启的进程不被关闭。然后来创建脚本,命名为“start_nginx.bat”,我们在Notepad++里来编辑它

<div>
<span style="color: #0000ff;">@echo</span><span style="color: #000000;"> </span><span style="color: #0000ff;">off</span><span style="color: #000000;"><br></span><span style="color: #008000;">REM</span><span style="color: #008000;"> Windows 下无效</span><span style="color: #008000;"><br>REM</span><span style="color: #008000;"> set PHP_FCGI_CHILDREN=5</span><span style="color: #008000;"><br></span><span style="color: #000000;"><br></span><span style="color: #008000;">REM</span><span style="color: #008000;"> 每个进程处理的最大请求数,或设置为 Windows 环境变量</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">set</span><span style="color: #000000;"> PHP_FCGI_MAX_REQUESTS</span><span style="color: #000000;">=</span><span style="color: #000000;">1000</span><span style="color: #000000;"><br> <br></span><span style="color: #0000ff;">echo</span><span style="color: #000000;"> Starting PHP FastCGI</span><span style="color: #000000;">...</span><span style="color: #000000;"><br>RunHiddenConsole D:</span><span style="color: #000000;">/</span><span style="color: #000000;">wnmp</span><span style="color: #000000;">/</span><span style="color: #000000;">php5</span><span style="color: #000000;">/</span><span style="color: #000000;">php-cgi</span><span style="color: #000000;">.</span><span style="color: #000000;">exe -b </span><span style="color: #000000;">127.0</span><span style="color: #000000;">.</span><span style="color: #000000;">0.1</span><span style="color: #000000;">:</span><span style="color: #000000;">9000</span><span style="color: #000000;"> -c D:</span><span style="color: #000000;">/</span><span style="color: #000000;">wnmp</span><span style="color: #000000;">/</span><span style="color: #000000;">php5</span><span style="color: #000000;">/</span><span style="color: #000000;">php</span><span style="color: #000000;">.</span><span style="color: #000000;">ini<br> <br></span><span style="color: #0000ff;">echo</span><span style="color: #000000;"> Starting nginx</span><span style="color: #000000;">...</span><span style="color: #000000;"><br>RunHiddenConsole D:</span><span style="color: #000000;">/</span><span style="color: #000000;">wnmp</span><span style="color: #000000;">/</span><span style="color: #000000;">nginx</span><span style="color: #000000;">/</span><span style="color: #000000;">nginx</span><span style="color: #000000;">.</span><span style="color: #000000;">exe -p D:</span><span style="color: #000000;">/</span><span style="color: #000000;">wnmp</span><span style="color: #000000;">/</span><span style="color: #000000;">nginx</span>
</div>
登录后复制

再另外创建一个名为stop_nginx.bat的脚本用来关闭nginx

<div>
<span style="color: #0000ff;">@echo</span><span style="color: #000000;"> </span><span style="color: #0000ff;">off</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">echo</span><span style="color: #000000;"> Stopping nginx</span><span style="color: #000000;">...</span><span style="color: #000000;"> </span><span style="color: #000000;"> </span><span style="color: #000000;"><br>taskkill </span><span style="color: #000000;">/</span><span style="color: #000000;">F </span><span style="color: #000000;">/</span><span style="color: #000000;">IM nginx</span><span style="color: #000000;">.</span><span style="color: #000000;">exe </span><span style="color: #000000;">></span><span style="color: #000000;"> nul</span><span style="color: #000000;"></span><span style="color: #000000;"><br></span><span style="color: #0000ff;">echo</span><span style="color: #000000;"> Stopping PHP FastCGI</span><span style="color: #000000;">...</span><span style="color: #000000;"><br>taskkill </span><span style="color: #000000;">/</span><span style="color: #000000;">F </span><span style="color: #000000;">/</span><span style="color: #000000;">IM php-cgi</span><span style="color: #000000;">.</span><span style="color: #000000;">exe </span><span style="color: #000000;">></span><span style="color: #000000;"> nul<br></span><span style="color: #0000ff;">exit</span>
</div>
登录后复制

做好后,是这样的

windows下配置nginx+php环境

这样,我们的服务脚本也都创建完毕了。双击start_nginx.bat看看进程管理器是不是有两个nginx.exe的进程和一个php-cgi.exe的进程呢?

windows下配置nginx+php环境

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

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

<div>
<span style="color: #000000;"></span><span style="color: #000000;">php<br>    </span><span style="color: #008080;">phpinfo</span><span style="color: #000000;">();<br></span><span style="color: #000000;">?></span>
</div>
登录后复制

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

windows下配置nginx+php环境

就说明,nginx+php的环境已经配置好了,呵呵~

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

Gitee Pages静态网站部署失败:单个文件404错误如何排查和解决? Gitee Pages静态网站部署失败:单个文件404错误如何排查和解决? Apr 04, 2025 pm 11:54 PM

GiteePages静态网站部署失败:404错误排查与解决在使用Gitee...

h5项目怎么运行 h5项目怎么运行 Apr 06, 2025 pm 12:21 PM

运行 H5 项目需要以下步骤:安装 Web 服务器、Node.js、开发工具等必要工具。搭建开发环境,创建项目文件夹、初始化项目、编写代码。启动开发服务器,使用命令行运行命令。在浏览器中预览项目,输入开发服务器 URL。发布项目,优化代码、部署项目、设置 Web 服务器配置。

c语言多线程的四种实现方式 c语言多线程的四种实现方式 Apr 03, 2025 pm 03:00 PM

语言多线程可以大大提升程序效率,C 语言中多线程的实现方式主要有四种:创建独立进程:创建多个独立运行的进程,每个进程拥有自己的内存空间。伪多线程:在一个进程中创建多个执行流,这些执行流共享同一内存空间,并交替执行。多线程库:使用pthreads等多线程库创建和管理线程,提供了丰富的线程操作函数。协程:一种轻量级的多线程实现,将任务划分成小的子任务,轮流执行。

说明匹配表达式(PHP 8)及其与开关的不同。 说明匹配表达式(PHP 8)及其与开关的不同。 Apr 06, 2025 am 12:03 AM

在PHP8 中,match表达式是一种新的控制结构,用于根据表达式的值返回不同的结果。1)它类似于switch语句,但返回值而非执行语句块。2)match表达式使用严格比较(===),提升了安全性。3)它避免了switch语句中可能的break遗漏问题,增强了代码的简洁性和可读性。

c 多线程三种实现方式的区别是什么 c 多线程三种实现方式的区别是什么 Apr 03, 2025 pm 03:03 PM

多线程是计算机编程中的重要技术,用来提升程序执行效率。在 C 语言中,有多种实现多线程的方式,包括线程库、POSIX 线程和 Windows API。

描述...(SPLAT)操作员在php函数参数和数组解开包装中的目的和用法。 描述...(SPLAT)操作员在php函数参数和数组解开包装中的目的和用法。 Apr 06, 2025 am 12:07 AM

PHP中的...(splat)操作符用于函数参数和数组解包,提升代码简洁性和效率。1)函数参数解包:将数组元素作为参数传递给函数。2)数组解包:将一个数组解包到另一个数组中或作为函数参数。

什么是跨站点伪造(CSRF),您如何在PHP中实施CSRF保护? 什么是跨站点伪造(CSRF),您如何在PHP中实施CSRF保护? Apr 07, 2025 am 12:02 AM

在PHP中可以通过使用不可预测的令牌来有效防范CSRF攻击。具体方法包括:1.生成并在表单中嵌入CSRF令牌;2.在处理请求时验证令牌的有效性。

See all articles