阅读(2779)

最最详细的windows+nginx+mysql+php环境搭建和配置

最后一次修改 2017年12月15日

我们知道。Nginx是一款轻量级的Web 服务器,是一款代理服务器,并且是在BSD-like 协议下发行,是由俄罗斯的大佬开发。在我们国家新浪、网易、腾讯等都有使用,这篇文章就给大家介绍windows+nginx+mysql+php环境搭建和配置,下面我们一起来看一下。

这么有逼格的服务器,我就不多做介绍,前面也提到了一些。我就直接安装吧,把下载下来的nginx-1.4.7.zip文件,解压到指定的目录就OK了,下面贴一下我的目录结构哦

下面是nginx的一些基本操作指令,当然你也可以直接双击nginx.exe文件来启动服务器(^_^)

start nginx    //启动服务
nginx -s stop    // 停止nginxnginx -s reload    // 重新加载配置文件nginx -s quit    // 退出nginx

在浏览器地址中输入localhost ,如出现下图说明安装成功了!

MySql

关于mysql的安装,请自行去解决(^_^),我不想多说了!好吧,可以参考我之前写一篇文章,里面有详细的介绍哦,你会明白的(^_^)

windows下搭建Apache+Mysql+PHP开发环境

PHP

关于PHP的安装,我也不想说了! 额,你其实也可以参考。。。你会懂的,哈哈!好吧,往下看吧!

php提供了两种版本可以选择,即线程安全和非线程安全

TS:Thread Safe 线程安全, 执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源

NTS:Non Thread Safe 非线程安全, 在执行时不进行线程(Thread)安全检查

PHP的两种执行方式:ISAPI和FastCGI。

CGI(通用网关接口/Common Gateway Interface)一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求。这样,当用 户请求数量非常多时,会大量占用系统的资源,如内存、CPU时间等,造成效能低下。

ISAPI(Internet Server Application Program Interface)是微软提供的一套面向WEB服务的API接口,它能实现CGI提供的全部功能,并在此基础上进行了扩展,如提供了过滤器应用程序接 口。ISAPI应用大多数以DLL动态库的形式使用,可以在被用户请求后执行,,在处理完一个用户请求后不会马上消失,而是继续驻留在内存中等待处理别的 用户输入。此外,ISAPI的DLL应用程序和WEB服务器处于同一个进程中,效率要显著高于CGI。所以如果是以ISAPI来执行PHP,建议选择Thread Safe版本

FastCGI是可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。传统的CGI解释器的反复加载是 CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性等。nginx下php是以FastCGI的方式运行,所以我们下载Non Thread Safe版本.

我知道你已经懂了,shi不shi呀! 不过网上有些人下的TS有的人下的NTS的,选择困难症有犯了,哈哈~~~!下非线程安全的吧,因为我就下的就是这个,待会自己去百度云下的时候别选错了哦~~

将压缩文件解压到指定的文件夹(这里你爱咋整就咋整,可以参考我上面的目录结构)。配置php.ini文件,php提供了两个模板,php.ini-development和php.ini-production,前者适合开发程式使用(测试用),后者拥有较高的安全性设定,则适合上线当产品使用。这里我们将php.ini-development文件改为php.ini做配置文件使用。

修改扩展dll文件目录:

//这里根据自己的实际情况而定extension_dir = "E:\2015\wnmp\php\ext"

加入扩展:

选择需要运行哪些扩展,只需将extension前面的注释去掉,例如:

extension=php_mysql.dll
extension=php_mysqli.dll

CGI 设置

enable_dl = Oncgi.force_redirect = 0cgi.fix_pathinfo=1fastcgi.impersonate = 1cgi.rfc2616_headers = 1

配置Nginx

这里所说的配置,主要是讲如何让Nginx对PHP提供支持!!打开nginx目录下conf文件夹里的nginx.conf(这就是我的配置文件了)

修改如下代码,位置如下

修改网站的根目录,添加index.php的默认页支持,修改后的代码如下。

location / {
            root   E:/2015/wnmp/nginx/html;
            index  index.html index.htm index.php;}

让nginx支持PHP的设置,代码位置如下

先将前面的“#”去掉,同样将root  html;改为root  E:/2015/wnmp/nginx/html;。再把“/scripts”改为“$document_root”,这里的“$document_root”就是指前面“root”所指的站点路径,改完后的代码如下:

location ~ \.php$ {
            root           E:/2015/wnmp/nginx/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;}

上述配置改为后,别玩了要重启nginx哦,操作指令我已经到上面给出了啊!

测试

启动php内置的cgi程序,在9000端口监听nginx发过来的请求:

E:\2015\wnmp\php>php-cgi.exe -b 127.0.0.1:9000-c E:\wnmp\php\php.ini

PS:上一步操作中如果没有重启nginx的话,现在重启一遍吧!!

在网站更目录(上步操作中root所指向的路径我这里是 E:/2015/wnmp/nginx/html)下创建phpinfo.php文件,代码如下

<?php phpinfo(); ?>

在浏览器地址栏中输入http://localhost/phpinfo.php,一次性点亮,是不是很Happy!!

RunHiddenConsole配置

首先把下载好的RunHiddenConsole.zip包解压到nginx目录内,RunHiddenConsole.exe的作用是在执行完命令行脚本后可以自动关闭脚本,而从脚本中开启的进程不被关闭。

创建start_nginx.bat文件

@echo off
REM Windows 下无效REM set PHP_FCGI_CHILDREN=5REM 每个进程处理的最大请求数,或设置为 Windows 环境变量set PHP_FCGI_MAX_REQUESTS=1000
echo Starting PHP FastCGI...RunHiddenConsole E:/2015/wnmp/php/php-cgi.exe -b 127.0.0.1:9000 -c E:/2015/wnmp/php/php.ini

echo Starting nginx...RunHiddenConsole E:/2015/wnmp/nginx/nginx.exe -p E:/2015/wnmp/nginx

创建stop_nginx.bat脚本,对应的是用来关闭nginx服务

@echo off
echo Stopping nginx...  taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...taskkill /F /IM php-cgi.exe > nulexit

以上就是windows+nginx+mysql+php环境搭建和配置,你学会了吗

相关推荐:

用python搭建一个最简单的Web服务器方法

phpwamp的使用方法以及和其他集成环境的区别解析

如何自由修改phpstudy的php版本