Windows 本地部署 PHP8.1.32 + Nginx + Redis 后端教程(实测可用)

核心:不用Apache,用Nginx+Redis,适配PHP8.1.32(NTS版),全程实测,新手可直接照做,无多余废话。用了Nginx就用NTS,用Apache就用TS

一、前期准备(必下文件)

  1. PHP:php-8.1.32-nts-Win32-vs16-x64.zip(NTS版,适配Nginx,官网存档下载:https://windows.php.net/downloads/releases/archives/)

  2. Redis扩展:php_redis-5.3.7-8.1-nts-vc16-x64.zip(对应PHP版本,直接下载:https://pecl.php.net/get/redis-5.3.7-8.1-nts-vc16-x64.zip)

  3. Nginx:nginx-1.28.3.zip(稳定版,官网下载:http://nginx.org/en/download.html,选Windows-64)

注意:所有文件解压路径必须纯英文、无空格(示例路径:D:\php81、D:\nginx-1.28.3)。

二、PHP 配置(核心步骤)

  1. 解压PHP到D:\php81,复制php.ini-development,重命名为php.ini。

  2. 打开php.ini,修改3处关键配置(去掉前面分号;):

    1. extension_dir = "ext"

    2. 开启扩展:extension=mysqli、extension=pdo_mysql、extension=redis

    3. 设置时区:date.timezone = Asia/Shanghai

  3. 安装Redis扩展:解压Redis扩展包,将php_redis.dll复制到D:\php81\ext。

  4. 配置环境变量:此电脑→属性→高级系统设置→环境变量→系统变量Path→新增D:\php81,重启CMD。

  5. 验证:CMD输入php -v(显示PHP8.1.32版本)、php -m(显示redis扩展),即为成功。

三、Nginx 配置与启动

  1. 解压Nginx到D:\nginx-1.28.3,打开D:\nginx-1.28.3\conf\nginx.conf,删除原有内容,替换为以下配置(修改root路径为自己的PHP源码路径):

    复制代码
    worker_processes  1;
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
        server {
            listen       80;
            server_name  localhost;
            root   D:/php81/www/api; # 替换为你的PHP源码路径
            index  index.php index.html;
            location / {
                try_files $uri $uri/ /index.php?$query_string;
            }
            location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
            }
        }
    }
  2. 启动顺序(必须按此顺序,CMD分开打开):

    1. 启动PHP-CGI:CMD输入 D:\php81\php-cgi.exe -b 127.0.0.1:9000(窗口不要关)

    2. 启动Nginx:新开CMD,依次输入 D: → cd nginx-1.28.3 → start nginx(无提示即为成功)

四、测试与报错解决

  1. 测试:浏览器输入http://localhost,能访问PHP源码内容即为成功。

  2. 常见报错解决:

    1. Nginx报错"找不到nginx.conf":不要双击nginx.exe,必须先cd进入Nginx目录再启动。

    2. 502 Bad Gateway:PHP-CGI未启动,重新执行启动PHP-CGI命令。

    3. 404页面:nginx.conf中root路径写错,核对源码路径并修改。

    4. Redis扩展加载失败:确认扩展版本与PHP版本(NTS、x64、vc16)完全对应。

五、常用命令(备用)

  • 停止Nginx:CMD进入Nginx目录,输入 nginx.exe -s stop

  • 强制杀死Nginx进程:taskkill /f /im nginx.exe

  • 重新加载Nginx配置:nginx.exe -s reload

相关推荐
火云代理11 小时前
更换网络后为什么会退出登录?分清 IP、Cookie 与会话的关系
服务器·网络·网络协议·tcp/ip·php·ip
火云代理15 小时前
同一个网站,有的网络能打开、有的打不开?认识 IPv4 与 IPv6 的访问差异
服务器·网络·网络协议·tcp/ip·测试工具·php·状态模式
笑容掩饰我的失落21 小时前
区块链从小白到精通(七):Solidity 语法精讲——数据类型、函数、修饰器与事件
算法·区块链·php·智能合约·哈希算法
笑容掩饰我的失落2 天前
区块链从小白到精通(八):从零实现一个标准 ERC-20 代币(完整可运行代码)
算法·区块链·php·智能合约·哈希算法
xbzb3 天前
从零容器化部署 ECShop:Harbor 私有仓库 + 自定义 PHP 镜像 + LNMP 三容器
容器·php·harbor·镜像·仓库·ecshop
爱和冰阔落4 天前
【Linux网络】JsonCpp 怎么实现序列化?从 Request/Response 到网络计算器消息设计
linux·运维·网络·php
eggwyw4 天前
PHP8.5怎么用ffmpeg提取视频里的字幕轨道
开发语言·php
我叫黑大帅5 天前
PHP 常驻 Worker 中 MySQL 连接中断问题报告
后端·面试·php
国科安芯5 天前
人在回路中的总线:商业空间站环境控制与生命保障系统CANFD网络的可靠性与功能安全
网络·嵌入式硬件·安全·架构·php·抗辐射
码途行者5 天前
网站的SQL 注入:从攻击原理到防御措施
开发语言·sql·php