使用nginx搭建php开发环境[window]
nginx 下载 http://nginx.org/download/
php 下载 https://windows.php.net/downloads/releases/archives
RunHiddenConsole.exe 下载(后面需要用到)
链接:https://pan.baidu.com/s/15I_gRsf8dPZepa-DhuDz_g
提取码:y4cm
先将php nginx下载好解压到相应目录,我这里下载了多个php版本,你们只要下载自己想下载的版本就好
第一步、nginx配置
修改nginx配置文件nginx-1.18.0\conf\nginx.conf文件,找到
location / { root html; #这里是站点的根目录 index index.html index.htm; }
将root html 改为 root D:\websit\demo1,再往下找到
#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; #}
先将前面的“#”去掉,同样将root html;改为root root D:\websit\demo1。
location ~ \.php$ { root D:\websit\demo1; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
第二步、php配置
以php-7.4.27为例,进入文件夹修改php.ini-recommended文件为php.ini,并编辑php.ini
找到 extension_dir = "./ext" 改为 extension_dir = "D:\server\php-7.4.27/ext" 找到 ;extension=php_mysql.dll ;extension=php_mysqli.dll 去掉前面的分号";",如下 extension=php_mysql.dll extension=php_mysqli.dll 前面指定了php的ext路径后,只要把需要的扩展包前面所对应的“;”去掉,就可以了。这里打开php_mysql.dll和php_mysqli.dll,让php支持mysql 接下来我们来配置php,让php能够与nginx结合。找到 ;cgi.fix_pathinfo=1 去掉前面的分号";",如下 cgi.fix_pathinfo=1 //php的CGI的设置
nginx+php配置已完,来跑跑看,打开命令提示符,进入到php-7.4.27目录下,执行命令 php-cgi.ext -b 127.0.0.1:9000 -c D:\server\php-7.4.27/php.ini
再开一个命令提示符,进入到nginx-1.18.0目录下,执行命令 nginx.exe
在地址栏上输入localhost 看看效果
附加
在真实的开发中,每次都要这么启动开发环境着实费劲,下面我整理了一下bat命令,可一键启动,一键关闭
命令需要用到“RunHiddenConsole.exe”这个软件,它能静默运行php和nginx,软件地址在文章最前面,自行下载
可将下面命令复制放入到text文件中,然后将.txt后缀改为.bat即可
nginx+php 启动
@echo off set php_home=D:\server\php-7.4.27 set nginx_home=D:\server\nginx-1.18.0 REM Windows 下无效 REM set PHP_FCGI_CHILDREN=5 REM 每个进程处理的最大请求数,或设置为 Windows 环境变量 set PHP_FCGI_MAX_REQUESTS=1000 echo Starting PHP FastCGI... RunHiddenConsole.exe %php_home%/php-cgi.exe -b 127.0.0.1:9000 -c %php_home%/php.ini echo Starting nginx... RunHiddenConsole.exe %nginx_home%/nginx.exe -p %nginx_home%
nginx+php 关闭
@echo off echo Stopping nginx... taskkill /F /IM nginx.exe > nul echo Stopping PHP FastCGI... taskkill /F /IM php-cgi.exe > nul