Windows下搭建Nginx+PHP开发环境
工具准备
1. Nginx 1.14.0(版本可根据需要选择)
2. PHP 7.2.11(版本可根据需要选择)
3. RunHiddenConsole(用于隐藏CMD命令窗口)
- 下载链接:https://pan.baidu.com/s/1gHDrQBqDUFZH4uESNV9aXQ
- 提取密码:oq9a
安装步骤
1. 解压安装
将PHP和Nginx解压到指定文件夹。
2. 配置PHP
1. 进入PHP文件夹,找到
php.ini-development配置文件
2. 复制一份并重命名为
php.ini3. 打开
php.ini进行配置:
关键配置项:
- extension_dir:设置为PHP目录下ext文件夹的绝对路径
- 示例:
E:\self\soft\php-7.2.11\ext - 注意:删除左边的分号
;(分号表示注释)
- cgi.fix_pathinfo:取消注释并设置为
1
- 作用:在cgi模式下提供PATH_INFO信息
- 原因:Nginx默认不会设置PATH_INFO值
3. 配置Nginx
打开
nginx.conf配置文件(位于nginx/conf目录):
主要修改位置:
server {
listen 81; 端口号(默认80,冲突时修改)
server_name test.com; 自定义域名(需在hosts文件中添加)
location / {
root E:\self\www; 网站根目录绝对路径
index index.html index.htm;
}
location ~ \.php$ {
root E:/self/www; 网站根目录
fastcgi_pass 127.0.0.1:9001; PHP-CGI监听端口
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
重要提示:
fastcgiparam SCRIPTFILENAME原为/script$fastcgiscriptname
- 必须修改为
$document_root$fastcgi_script_name
- 也可直接使用绝对路径:
E:/self/www$fastcgiscriptname
4. 启动服务
启动Nginx:
- 方法一:CMD中输入
start nginx(需配置环境变量)
- 方法二:进入nginx目录执行
nginx.exe
启动PHP-CGI:
E:\self\soft\php-7.2.11\php-cgi.exe -b 127.0.0.1:9001 -c E:\self\soft\php-7.2.11\php.ini
注意: 端口号必须与Nginx配置一致
5. 测试环境
1. 在网站根目录创建
phpinfo.php文件
2. 内容:
<?php phpinfo(); ?>3. 浏览器访问:
http://test.com:81/phpinfo.php批处理脚本(优化方案)
启动脚本(start.bat)
@echo off
set PHP_FCGI_MAX_REQUESTS=1000
echo Starting PHP FastCGI...
rem 替换为你的实际路径
RunHiddenConsole E:\self\soft\php-7.2.11\php-cgi.exe -b 127.0.0.1:9001 -c E:\self\soft\php-7.2.11\php.ini
echo Starting nginx...
rem 替换为你的nginx路径
E:\self\soft\nginx-1.14.0\nginx.exe -p E:\self\soft\nginx-1.14.0\
pause
关闭脚本(stop.bat)
@echo off
echo Stopping nginx...
taskkill /F /IM nginx.exe >nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe >nul
exit
常见问题解决
PHP文件只下载不解析
解决方案:重启电脑
文件放置要求
1. 将
RunHiddenConsole.exe与批处理文件放在同一目录
2. 批处理文件无需安装,直接双击运行
管理命令
- 重启Nginx:
nginx.exe -s reload
- 关闭Nginx:
nginx.exe -s quit
注意事项
1. 配置文件中不要保留中文注释,可能影响代码执行
2. 端口号冲突时及时修改
3. 路径建议使用绝对路径,避免相对路径问题
4. 批处理脚本中的参数前后空格必须保留<br><br>百度AI生成,内容仅供参考