写在前面
因为需要配置服务器的时候很少,所以老记不住,这次参考简书文章(https://www.jianshu.com/p/40106c58f353),回顾了一下,顺便做个笔记(下次偷懒)。
nginx是反向代理,所以需要利用php的fastcgi作为真实的web服务器。即nginx下php是以FastCGI的方式运行,所以我们php要下载非线程安全版本。
1、下载nginx和php
不多说,直接放官方下载地址
php下载地址
ngin下载地址
2、nginx使用
下载了nginx直接解压点击里面的nginx.exe文件即可运行。此时地址栏输入http://127.0.0.1或http://localhost,看到“welcome to nginx”,就说明已经成功了。
3、php的使用
php的话,解压后找到php.ini-development文件,复制一份在当前目录并且重命名为php.ini。
将php.ini中的“;cgi.fix_pathinfo=1”的分号去掉,即开启此配置
4、nginx和php配合,测试运行
1.配置
打开nginx的conf文件夹下的nginx.config,找到该部分(fastcgi_pass 127.0.0.1:9000;表示cgi运行在9000端口)
#location ~ .php$ {
#root html;
#fastcgi_pass 127.0.0.1:9000;
#fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
#include fastcgi_params;
#}
将前面的“#”全部去除,并将以下两个语句修改为:
fastcgi_index 项目根目录路径(例如D:developmentphp);
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
并将root html;
改为root 项目根目录路径(例如D:developmentphp);
,然后保存
2.建立测试文件
在项目根目录路径(例如D:developmentphp)新建test.php,并输入
<?php
phpinfo();
?>
3.在cmd模式下,进入到php解压文件的根目录下,运行以下命令,用来开启cgi
php-cgi.exe -b 127.0.0.1:9000 -c php.ini
4.地址栏输入http://127.0.0.1/test.php或者http://localhost/test.php
得到php的各项信息界面
5、快速启动
因为每次手动开启都很麻烦,而且cgi开启的话cmd会一直开着,所以用RunHiddenConsole来简化,提取码: ih28。
下载解压后,会有两个bat批处理文件和一个exe文件,bat处理文件可以自己改写也可以用以下的:
启动的批处理(start.bat)
REM REM是bat文件的注释类似于php的//
REM 设置不输出命令
@ECHO off
REM 设置Nginx和php-cgi的目录
SET php_home=E:/php/php-7.2/
SET nginx_home=E:/nginx/nginx-1.18.0/
REM 输出状态
ECHO Starting PHP FastCGI...
REM 启动php-cgi -b 端口 -c php.ini位置
REM %php_home%为获取上面set的php_home的值
RunHiddenConsole %php_home%php-cgi.exe -b 127.0.0.1:9000 -c %php_home%php.ini
REM 输出状态
ECHO Starting nginx...
REM 启动Nginx -p Nginx的根目录
RunHiddenConsole %nginx_home%nginx.exe -p %nginx_home%
关闭的批处理(stop.bat)
@ECHO off
ECHO Stopping nginx...
REM 结束进程 /F 强制终止 /IM 指定的进程
TASKKILL /F /IM nginx.exe
ECHO Stopping PHP FastCGI...
TASKKILL /F /IM php-cgi.exe
REM 关闭窗口
EXIT
建好后双击启动的批处理文件即可快速启用php-cgi和nginx