宝塔10周年开年大促,年度钜惠,先领红包再下单,企业版低至941元!查看活动
当前位置:论坛首页 > BUG提交 > Linux面板

【已解答】php的fastcgi参数错误

发表在 BUG提交2026-1-6 14:39 [复制链接] 1 759

复现版本:
(稳定版)    v10.0.2-LTS             PHP74
/www/server/nginx/conf/fastcgi.conf

...省略部分

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;
fastcgi_param  HTTP_HOST          $host;


正常版本 9.6.0  没这个参数

问题影响:
正常情况下HTTP_HOST是会输出当前的域名+端口(80 443时候会隐藏),业界约定 HTTP_HOST 的默认表现默认就是这样。
但因为fastcgi默认参数里有一个错误的 HTTP_HOST 把端口给覆盖掉了,就没了端口造成代码报错。不写这个参数是正常的,如果写也应该写成   fastcgi_param  HTTP_HOST      $http_host;

不知道为什么要加这个参数

测试代码:
  1. <font color="#efb080">echo</font> <font color="#e394dc">"HTTP_HOST: "</font> <font color="#d6d6dd">.</font> <font color="#d6d6dd">$_SERVER[</font><font color="#e394dc">'HTTP_HOST'</font> <font color="#d6d6dd">.</font> <font color="#e394dc">"<br>"</font><font color="#d6d6dd">;</font>
  2. <font color="#efb080">echo</font> <font color="#e394dc">"SERVER_NAME: "</font> <font color="#d6d6dd">.</font> <font color="#d6d6dd">$_SERVER[</font><font color="#e394dc">'SERVER_NAME'</font> <font color="#d6d6dd">.</font> <font color="#e394dc">"<br>"</font><font color="#d6d6dd">;</font>
  3. <font color="#efb080">echo</font> <font color="#e394dc">"SERVER_PORT: "</font> <font color="#d6d6dd">.</font> <font color="#d6d6dd">$_SERVER[</font><font color="#e394dc">'SERVER_PORT'</font> <font color="#d6d6dd">.</font> <font color="#e394dc">"<br>"</font><font color="#d6d6dd">;</font>
复制代码




使用道具 举报 只看该作者 回复
发表于 2026-1-28 09:37:56 | 显示全部楼层

  1. fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
  2. fastcgi_param  QUERY_STRING       $query_string;
  3. fastcgi_param  REQUEST_METHOD     $request_method;
  4. fastcgi_param  CONTENT_TYPE       $content_type;
  5. fastcgi_param  CONTENT_LENGTH     $content_length;

  6. fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
  7. fastcgi_param  REQUEST_URI        $request_uri;
  8. fastcgi_param  DOCUMENT_URI       $document_uri;
  9. fastcgi_param  DOCUMENT_ROOT      $document_root;
  10. fastcgi_param  SERVER_PROTOCOL    $server_protocol;
  11. fastcgi_param  REQUEST_SCHEME     $scheme;
  12. fastcgi_param  HTTPS              $https if_not_empty;

  13. fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
  14. fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

  15. fastcgi_param  REMOTE_ADDR        $remote_addr;
  16. fastcgi_param  REMOTE_PORT        $remote_port;
  17. fastcgi_param  SERVER_ADDR        $server_addr;
  18. fastcgi_param  SERVER_PORT        $server_port;
  19. fastcgi_param  SERVER_NAME        $server_name;

  20. # PHP only, required if PHP was built with --enable-force-cgi-redirect
  21. fastcgi_param  REDIRECT_STATUS    200;
  22. fastcgi_param  HTTP_HOST          $host;
复制代码



您好,这是当前最新版本的配置;看得出您的疑问在最后两行配置上
fastcgi_param  REDIRECT_STATUS    200;
fastcgi_param  HTTP_HOST          $host;




fastcgi_param  REDIRECT_STATUS    200;
这一段为了兼容老旧版本的PHP添加的代码,可以不加,但是为了兜底兼容老代码,加上也不影响
fastcgi_param  HTTP_HOST          $host;
这段代码的是为了让PHP程序获取到客户端(Nginx)传递过来的实际域名或者主机名,而非从  server_name 中传递过来的固定地址

使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表