php中的$_SERVER从哪来
前几个月学了个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。
php中的$_SERVER从哪来的更多相关文章
- PHP中的 $_SERVER 函数说明详解
用php在开发软件的时候,我们经常用到 $_SERVER[]这个函数,今天就来讲下这个数组的值,方便以后使用: A: $_SERVER['ARGC'] #包含传递给程序的 命令行参数的个数(如果运行在 ...
- PHP中的$_SERVER超全局变量
详细参数 PHP编程中经常需要用到一些服务器的一些资料,特把$_SERVER的详细参数整理下,方便以后使用. $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document ...
- PHP中的$_SERVER['PATH_INFO']
PHP中的全局变量$_SERVER['PATH_INFO']是一个很有用的参数,众多的CMS系统在美化自己的URL的时候,都用到了这个参数. 对于下面这个网址: http://www.test.com ...
- php中常用$_SERVER的用法
#测试网址: http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo $_SERVER['HTTP_HOST']."<br> ...
- $_SERVER["REQUEST_URI"],在 PHP 众多预定义服务器变量中,$_SERVER["REQUEST_URI"] 算是经常用到的,但是这个变量只有 apache 才支持
例如访问:http://localhost/index.php?app=lunbo获取到的$_SERVER["REQUEST_URI"]为"/index.php?app= ...
- PHP中的全局变量$_SERVER
1.常用 $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关.$_SERVER['argv'] #传递给该脚本的参数.$_SERVER['argc ...
- php $_SERVER中的SERVER_NAME 和HTTP_HOST的区别以及REQUEST_URI的讲解
今天再次遇到了这个问题通过$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']获取域名及请求的URL的问题,便再次百度了,发现没学习一次都有新的知识,便分享出 ...
- php $_SERVER中的一些选项说明
1, $_SERVER['SCRIPT_FILENAME'] 和 常量 __FILE__的区别(一般情况下两者的显示相同,都是显示文件的绝对路径,包括文件名,显示的起点是 电脑根目录 /) ①,如果在 ...
- PHP中$_SERVER的详细用法
PHP中$_SERVER的详细用法 $_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关. $_SERVER['argv'] #传递给该脚本的参数. ...
随机推荐
- VC项目配置基础以及快捷键(收藏)
来自http://blog.csdn.net/phunxm/article/details/5082488 一.IDE基础配置 1.字体 VC6中“Tools→Options→Format→Font” ...
- WordPress 前端用户投稿插件 Frontend Publishing
WordPress添加投稿功能(无需注册/可邮件通知站长和投稿人) WordPress匿名投稿插件:DX-Contribute (有朋友反馈不能用) WordPress投稿插件:User Submit ...
- Classifying plankton with deep neural networks
Classifying plankton with deep neural networks The National Data Science Bowl, a data science compet ...
- SpringMVC可以配置多个拦截后缀*.html和.do等
一个servlet可以配置多个servlet-mapping, 因此在xml文件中我们可以这样配置: <!-- springmvc配置 --> <servlet> <se ...
- Java装饰设计模式的例子
这里给出一个顾客购买咖啡的例子.其中咖啡可以加冰(2元),加巧克力(4元). 下面是面向对象中装饰模式的解决方案. /** * Created with IntelliJ IDEA. * User: ...
- 用C++ 设计一个不能被继承的类
http://blog.sina.com.cn/s/blog_69d9bff30100odlz.html 在Java 中定义了关键字final ,被final 修饰的类不能被继承.但在C++ 中没有f ...
- 几篇很有用的USB开发资料
1,USB描述符详解:http://blog.csdn.net/alien75/article/details/4622319 2,一种嵌入式USBMiniHost系统设计与实现:http://www ...
- Android WebView 开发详解(二)
转载请注明出处 http://blog.csdn.net/typename/article/details/39495409 powered by miechal zhao 概览: Androi ...
- redis高性能客户端 - redissdk
我们首先在我们自己的工程下放置redis.properties,内容如下: #redis地址 server=192.168.0.8 #redis端口 port=6379 auth=admin max_ ...
- URAL1012. K-based Numbers. Version 2
链接 考查大数 正好拿来学习下JAVA JAVA好高端.. import java.io.*; import java.math.*; import java.text.*; import java. ...