php中的$_SERVER从哪来
2024-09-15 21:22:09
前几个月学了个tcpdump抓包命令,遇到任何问题总想试试,真是程序员的终级武器呀,它像显微镜一下,把任何的丑陋的bug都显示在你的面前。
为什么有题目中所说的疑问呢?因为我发现在不同的环境下面,我获取到的$_SERVER["SERVER_NAME"]是不一样的。
$_SERVER顾名思义,它是服务端的配置,所以我想应该跟nginx的配置有关吧。事实也是如此。
验证方法一:
很简单,透过现象来看,通过改变nginx的配置,然后在PHP中打印变量。
server{
listen *:
root /var/nginx
server_name localhost;
}
验证方法二:
用tcpdump抓一个nginx传到php-fpm的请求包,用wireshark看看
tcpdump tcp dst port -i lo -s -w show &
可以看到的确是nginx把一些服务端的变量传递给了php-fpm。
具体细节可以参考fastcgi协议。
大家可以在nginx的配置文件同级目录下面,发现一个名字叫fastcgi_params的配置文件,nginx应该就是把这里面的变量传递给了PHP。
最新文章
- golang 裸写一个pool池控制协程的大小
- [ZZ] D3D中的模板缓存(3)
- Python邮件脚本
- [Java] java中的异常处理
- java方法签名
- JavaScript-学习一_var
- 创见WiFi SD卡破解之路
- 在CentOS/RHEL/Scientific Linux 6下安装 LAMP
- IOS 警告 收集
- JavaScript一个类继承中实现
- 解决ie 低版本的 background-size 兼容问题
- iOS 之 UICollectionView
- Go 实现 自动检索 API 错误码代码行 并 打印成文档,例 markDown 形式等
- 009-Python-面向对象
- 浅谈log4j-3-不同输出样式
- js 数组对象的操作方法
- “数学口袋精灵”App的第二个Sprint计划----开发日记
- 关于Unity中DOTween插件的使用(专题一)
- CloudStack无法添加模板和iso
- iOS开发进阶 - 项目的本地化处理(多语言开发)