文档章节

【nginx】Windows下的nginx+php7的搭建

yongh701
 yongh701
发布于 2018/04/29 12:52
字数 1572
阅读 3154
收藏 2

关于php的搭建,此前在《【php】本地开发环境的部署与helloworld》(https://blog.csdn.net/yongh701/article/details/41789753)和《【php】在Windows2003下配置Apache2.4与php5.4》(https://blog.csdn.net/yongh701/article/details/47080057)都有提及到。一种是傻瓜式的安装包,一种是在apache服务器上是搭建php。php也可以直接利用Windows的iis服务器进行搭建,具体见《【php】在Windows2003下的IIS配置php5.4》(https://blog.csdn.net/yongh701/article/details/47083231)。可惜这都是不太主流的php搭配方式。现在,应该说是老早之前,大部分比较专业的网站都已经用nginx去搭载php了。下面就直接用一个例子来说明如何在windows下如何用nginx去配置php。

 

一、nginx和php的下载

在下载nginx和php之前,先到微软的官网(https://www.microsoft.com/en-us/download/details.aspx?id=48145)将vc15安装了。要注意的是,你的电脑是32位系统还是64位系统,是哪个就安装哪个,我这的windows是64位的,所以这里我下载了x64的。

下载之后,得到的vc_redist.x64.exe是一个连安装目录都不用你选,你也不应该选的一键傻瓜安装文件。php7需要vc15运行库才能运行,这也就是为何win2003、winxp只支持到php5.4的原因,因为php5.4开始就要vc9了,windows2003、xp只能支持到vc8了。

然后去下载nginx,其实nginx是个和iis、apache一样,也就tomcat那意思的玩意。我们首先要到他的官网(http://nginx.org/)下载nginx。进去之后选择download,找到windows的稳定版。下载之后得到了一个叫nginx-1.14.0.zip的东西。

之后再去php的官网(http://www.php.net/),下载最新的php7。这里是否是线程安全由于我们不是用iis版本来配php,所以没所谓。不过要注意的是,你的电脑是32位系统还是64位系统,我这的windows是64位的,所以这里我下载了x64的php。下载之后得到了一个叫php-7.2.5-Win32-VC15-x64.zip的东西。

 

二、nginx和php的配置

1、下载之后建议新建个文件夹,这里,我叫PHP。这里需要注意的是,尽可能将这个文件夹放到一个没有空格路径的地方——虽说即使有空格,大部分系统也就是在配置文件加个双引号的事,但有小部分系统就是不认,尤其原生在linux的nginx,你在windows配,对于路径上的空格,在认知上就是不知会有些什么事情,所以避免不知名的麻烦,还是尽可能避免路径有英文。将nginx-1.14.0.zip和php-7.2.5-Win32-VC15-x64.zip分别解压到这里。再自己新建个文件夹叫WWW,这里以后将是我们存放php网站的地方。如图。

再下载个1K大小的RunHiddenConsole(http://redmine.lighttpd.net/attachments/660/RunHiddenConsole.zip),这是个帮助你一次性启动两个要挂载在命令行的程序玩意,用于未来同时启动nginx和php。如图点击下载。

解压RunHiddenConsole,建议放到和php、nginx相同的目录。c:\php此时的目录结构如下图所示:

2、打开.\PHP\nginx-1.14.0\conf中的nginx.conf,这也是nginx的配置文件。

(1)首先将第39的编码charset前的#去掉,并改成utf-8编码。也就是改成charset "utf-8";

(2)再将65~71行前的#通通去掉,修改第44行和66行的root,参数修改成我们刚才新建的,将来要用来放网站的目录路径,路径记得要用双引号“”括着。第69行的fastcgi_param,改成SCRIPT_FILENAME  "用来放网站的目录路径"$fastcgi_script_name;。我这里就是"C:\PHP\WWW";。

(3)之后,将第45行的index和第68行的fastcgi_index,改成index.php。

如下图所示,改完之后,保存退出。这样,nginx就设置完了。

3、接下来再设置php,几乎和之前的php设置一样了。

(1)将php.ini-development复制一份并改名成php.ini。之后用记事本,最好用notepad之类的打开。

(2)搜索“extension_dir”,找到:extension_dir = "ext" 先去前面的分号再改为 extension_dir = "你的php目录/ext",我这里是extension_dir = "C:/PHP/php-7.2.5-Win32-VC15-x64/ext"。

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

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

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

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

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

之后找到:;extension=pdo_mysql和;extension=mysqli,去掉前面的分号“;”,用于支持MYSQL数据库。Mysql数据库这里我就不再赘述了,详见《【Mysql】Mysql的安装、部署与图形化》(https://blog.csdn.net/yongh701/article/details/42648763)。这里的extension,以后根据你的php需求可以再自己去掉相应的分号;打开。

至此,php的配置完毕。

在刚才我们自行创建的WWW文件夹,新建一个utf-8编码的index.php,内容就是经典的:

<?php
	phpinfo();
?>

4、因为nginx和php需要通过命令行来启动,下面还要在windows系统配置命令行。

先将system32这个文件夹加入到系统变量再说,免得一会儿有些命令提示:“不是内部命令”。具体和配java配php一样了。“计算机”右键,属性->高级系统设置->高级->环境变量,在下方的系统变量中找到Path->编辑,在原有的路径上加个分号,添加上C:\Windows\System32。一路“确定”即可。

之后,在RunHiddenConsole同目录,写个start.bat。具体如下:

:设置php和nginx的路径
set php_home=C:\PHP\php-7.2.5-Win32-VC15-x64
set nginx_home=C:\PHP\nginx-1.14.0\
:启动php和nginx
RunHiddenConsole %nginx_home%\nginx.exe -p %nginx_home%
RunHiddenConsole %php_home%\php-cgi.exe -b 127.0.0.1:9000 -c %php_home%\php.ini

然后再写一个stop.bat:

taskkill /F /IM nginx.exe > nul 
taskkill /F /IM php-cgi.exe > nul  
exit  

以后就能用start.bat启动你的php网站,用stop.bat来关闭。

 

到此大功告成,最后点击start.bat,打开一个浏览器,输入http://localhost或者127.0.0.1,你就会见到如下的php.info页面,证明布置完成!

 

 

© 著作权归作者所有

yongh701
粉丝 27
博文 17
码字总数 10682
作品 0
佛山
私信 提问
Mac下安装php7之后依然运行php55?

Mac自带php5.5 + apache2环境,我想换成nginx+php7环境, 安装php7之后,通过php -v命令查看,php版本正常,但使用nginx配置虚拟主机, 默认访问依然是php55。 本人初入mac环境,请各位大神指...

Jorycn
2016/05/23
1K
5
Nginx+PHP7 安装及配置

今天花了几个小时折腾了下Nginx+PHP7编译安装和配置,写个博文记录下. 系统环境:centos6.5 x64 软件版本:nginx-1.10.0 php-7.0.6 安装 Nginx Nginx官网:http://nginx.org/ 先安装编译依赖的...

qw87112
2018/06/28
0
0
封装了 Nginx+php7-fpm 的 Dockerfile 仓库--docker-lnp

docker-lnp 是一个封装了 Nginx+php7-fpm 以及多数常用的 php 扩展的 Dockerfile 仓库,旨在快速构建基于 Docker 的 LNMP 环境! 特性: 1,自定义 Nginx, PHP-FPM, PHP 相关配置文件,完全定...

Koma
2017/10/23
612
0
Koma/docker-lnp

docker-lnp 是一个封装了 Nginx+php7-fpm 以及多数常用的 php 扩展的 Dockerfile 仓库,旨在快速构建基于Docker的LNMP环境。 特性: 1,自定义 Nginx, PHP-FPM, PHP 相关配置文件,完全定制 ...

Koma
2017/01/08
0
0
从零开始完整搭建LNMP环境+WordPress部署

0.说明 内容会有点多,但是下面的内容都是自己在学习LNMP环境搭建过程中的完整再现,所以非常具有参考价值! 下面用一个以最小化方式(Minimal)安装的CentOS 6.5操作系统为例,演示LNMP环境...

xpleaf
2017/03/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

浅谈FlyWeight享元模式

一、前言 享元(FlyWeight)模式顾名思义,即是轻量级,原因就是享元,共享元素,这里的元素指的是对象。如何共享对象,那就是在检测对象产生的时候,如果产生的是同一个对象,那么直接使用已...

青衣霓裳
23分钟前
5
0
Python学习10.14:Python set集合详解

Python 中的集合,和数学中的集合概念一样,用来保存不重复的元素,即集合中的元素都是唯一的,互不相同。 从形式上看,和字典类似,Python 集合会将所有元素放在一对大括号 {} 中,相邻元素...

太空堡垒185
24分钟前
6
0
好程序员大数据教程分享Scala系列之文件以及正则表达式

好程序员大数据教程分享Scala系列之文件以及正则表达式 1 读取行 导入scala.io.Source后,即可引用Source中的方法读取文件信息。 import scala.io.Source object FileDemo extends App{ val ...

好程序员官网
24分钟前
4
0
75.nosql memcached与安装及查看状态

21.1 nosql介绍 21.2 memrcached介绍 21.3 安装memcached 21.4 查看memcachedq状态 21.1 nosql介绍 什么是NoSQL: 1.非关系型数据库就是NoSQL,关系型数据库代表MySQL 也是一种数据库,来存储...

oschina130111
26分钟前
3
0
玩转阿里云 Terraform(二):Terraform 的几个关键概念

上一篇《玩转阿里云Terraform(一):Terraform 是什么》介绍了 Terraform 的基本定义和特点之后,本文将着重介绍几个Terraform中的关键概念。 Terraform 关键概念 在使用Terraform的过程中,通...

阿里云官方博客
26分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部