应修改 phpenv 管理的站点专属 nginx 配置文件(路径如 c:\phpenv\nginx\vhost\your-site.conf),在 server 块或 location ~ \.php$ 块内添加 fastcgi_hide_header x-powered-by;,保存后通过 phpenv 界面点击【重载 nginx】生效。

phpEnv 默认会暴露 X-Powered-By 响应头(值为 PHP/8.3.0 这类),这属于敏感信息泄露,应禁用或覆盖。直接在 phpEnv 的 Nginx 配置中修改即可,无需动 PHP 配置或重编译。
在哪改?找到 phpEnv 管理的 Nginx 站点配置文件
phpEnv 的每个网站都对应一个独立的 Nginx 配置文件,路径类似:
C:\phpEnv\nginx\vhost\your-site.conf
不是 nginx.conf 主配置,也不是 PHP 的 php.ini —— 改错位置不会生效。
- 打开 phpEnv 软件界面 → 【站点管理】→ 找到目标站点 → 点击【配置】按钮,会自动定位并打开该
.conf文件 - 若手动查找,请确认路径中域名或目录名与站点一致,避免编辑了其他测试站的配置
- 文件里一定包含
server { ... }块,所有修改必须放在这个块内(通常在location / { ... }附近)
怎么禁用或覆盖 X-Powered-By
Nginx 本身不生成 X-Powered-By,它来自 PHP-FPM 的默认行为。但你可以用 fastcgi_hide_header 彻底屏蔽,或用 add_header 覆盖(注意:后者仅对非 200/304 等标准响应有效,且需加 always):
- 推荐方式(彻底隐藏):在
server或location块中添加fastcgi_hide_header X-Powered-By; - 替代方式(覆盖为无意义值):添加
add_header X-Powered-By "N/A" always;
注意必须带always,否则 304 响应仍会透出原始值 - 不要写
proxy_hide_header—— phpEnv 是 FastCGI 模式,不是反向代理,该指令无效
改完不生效?检查三个关键点
常见“改了没反应”基本卡在这三处:
-
fastcgi_hide_header必须写在location ~ \.php$ { ... }块内,或其上级server块;写在http全局或错误的location /static里不生效 - 确认你编辑的是当前启用的站点配置(phpEnv 可能有多个同名配置备份,如
your-site.conf.bak) - 改完必须点击 phpEnv 界面右上角【重载 Nginx】(不是重启,也不是只点保存);命令行可执行:
C:\phpEnv\nginx\nginx.exe -s reload
最易被忽略的是:phpEnv 的 Nginx 配置里常自带 fastcgi_param 注入逻辑,如果同时启用了类似 fastcgi_param HTTP_X_POWERED_BY "hidden" 这类非常规设置,反而可能干扰 fastcgi_hide_header 的行为 —— 此时优先删掉这类冗余参数,只留标准 fastcgi_hide_header 即可。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











