关于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了。下面就直接用一个例子来说明如何在windows2008下用nginx去配置php。
一、nginx和php的下载
在下载nginx和php之前,先到微软的官网(https://www.microsoft.com/en-us/download/details.aspx?id=48145)将vc15安装了。要注意的是,你的电脑是32位系统还是64位系统,是哪个就安装哪个,一般情况win2008都是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位系统,一般情况win2008都是64位的,所以这里我下载了x64的php。下载之后得到了一个叫php-7.2.5-Win32-VC15-x64.zip的东西。
二、nginx和php的配置
1、下载之后建议新建个文件夹,这里我叫PHP,将nginx-1.14.0.zip和php-7.2.5-Win32-VC15-x64.zip分别解压到这里。再自己新建个文件夹叫WWW,这里以后将是我们存放php网站的地方。如图。
2、打开.\PHP\nginx-1.14.0\conf中的nginx.conf,这也是nginx的配置文件。修改的部分集中在第43~46行和65~71行。首先将65~71行前的#通通去掉。修改大概第44行和66行的root,修改成我们刚才新建的,将来要用来放网站的目录路径,路径记得要用双引号“”括着。这后,将第45行的index和第68行的fastcgi_index,改成index.php。第69行的fastcgi_param,改成SCRIPT_FILENAME $document_root$fastcgi_script_name;。改完之后,保存退出。这样nginx就设置完了。
3、接下来再设置php,几乎和之前的php设置一样了。
(1)将php.ini-development复制一份并改名成php.ini。之后用记事本,最好用notepad之类的打开。
(2)搜索“extension_dir”,找到:extension_dir = "ext" 先去前面的分号再改为 extension_dir = "你的php目录\ext",我这里是extension_dir = "C:/Program Files/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”,找到:”extension=pdo_mysql和extension=mysqli,去掉前面的分号“;”,用于支持MYSQL数据库。Mysql数据库这里我就不再赘述了,详见《【Mysql】Mysql的安装、部署与图形化》(https://blog.csdn.net/yongh701/article/details/42648763)。
至此,php的配置完毕。
在刚才我们自行创建的WWW文件夹,新建一个index.php,内容就是经典的:
<?php
phpinfo();
?>
三、nginx和php的启动
先将system32这个文件夹加入到系统变量再说,免得一会儿有些命令提示:“不是内部命令”。具体和配java配php一样了。“计算机”右键,属性->高级系统设置->高级->环境变量,在下方的系统变量中找到Path->编辑,在原有的路径上加个分号,添加上C:\Windows\System32。一路“确定”即可。
(1)先打开php
用win+r,运行一个cmd,用cd先进入你的php目录,我这是cd C:\Program Files\PHP\php-7.2.5-Win32-VC15-x64,然后php-cgi.exe -b 127.0.0.1:9000 -c php.ini打开php,即可,如图。
(2)再打开nginx
同样是用win+r,再运行一个cmd,用cd先进入你的nginx目录,我这是cd C:\Program Files\PHP\nginx-1.14.0,然后输入nginx.exe即可,如图。
然后将这俩个cmd挂着,打开一个浏览器,输入http://localhost或者127.0.0.1,你就会见到如下的php.info页面,证明布置完成!
四、nginx和php的结束
你可以自己用记事本或者notepad什么的新建一个stop.bat,写入如下语句,运行。或者自己直接在cmd一行一行输入,则可以关闭nginx和php了。
taskkill /F /IM nginx.exe > nul
taskkill /F /IM php-cgi.exe > nul
exit
注:同时参照《【nginx】windows2008下nginx的迁移、路径设置和一键启动》(https://my.oschina.net/u/3776619/blog/1805163)一文更精彩!