Home > Backend Development > PHP Tutorial > php中的$_SERVER从哪来

php中的$_SERVER从哪来

WBOY
Release: 2016-06-23 13:29:25
Original
1343 people have browsed it

前几个月学了个tcpdump抓包命令,遇到任何问题总想试试,真是程序员的终级武器呀,它像显微镜一下,把任何的丑陋的bug都显示在你的面前。

为什么有题目中所说的疑问呢?因为我发现在不同的环境下面,我获取到的$_SERVER["SERVER_NAME"]是不一样的。

$_SERVER顾名思义,它是服务端的配置,所以我想应该跟nginx的配置有关吧。事实也是如此。

验证方法一:

很简单,透过现象来看,通过改变nginx的配置,然后在PHP中打印变量。

server{    listen *:8080    root /var/nginx    server_name localhost;}
Copy after login

验证方法二:

用tcpdump抓一个nginx传到php-fpm的请求包,用wireshark看看

tcpdump tcp dst port 9000 -i lo -s 0 -w show &
Copy after login

可以看到的确是nginx把一些服务端的变量传递给了php-fpm。

具体细节可以参考fastcgi协议。

大家可以在nginx的配置文件同级目录下面,发现一个名字叫fastcgi_params的配置文件,nginx应该就是把这里面的变量传递给了PHP。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template