关于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页面,证明布置完成!