一、前言

在最新一次更新代码后,发现代码中出现了$_SERVER['HOSTNAME']这个东西,关键是$_SERVER["HTTP_HOST"]和$_SERVER["SERVER_NAME"] 我们经常用到,一般是用来获取服务器上的相关参数,唯独这个HOSTNAME参数是实在没见过。

二、寻找$_SERVER[‘HOSTNAME’]

1、首先是正常执行程序,发现报错:

php notice :  Undefined index: HOSTNAME in ....

也就是说,我们的php程序根本不能识别这个函数,但是也不是很严重的错误,只是个notice级别的,继续找找问题吧。

2、百度+google

经过百度+google,发现apache有个HostnameLookups属性,貌似是设置查询DNS的问题,但是本地服务器是nginx,因此百度nginx类似于这个配置的东西,找到了 enableLookups:启用DNS查询(默认是DNS查询被禁用),但这个参数设置之后,还是不成功。那么这个参数十有八九不是咱们想象的关于DNS的配置

3、php获取服务器的hostname等

在百度的时候,发现php的一个函数:php_uname — 返回运行 PHP 的系统的有关信息。 如果要获取hostname等相关信息,可以通过:

或者:$ hostname =(!empty($ _ ENV [“HOSTNAME”]))? $ _ENV [“HOSTNAME”]:env('HOSTNAME');
或者: $hostname = gethostname();

这个函数和我们要找的东西很接近了,但问题是,我们要找的是$_SERVER['HOSTNAME'],关键就是这个$_SERVER到底有没有这样一个参数,没有的话,为何大佬要这么写呢?mmp,继续查。

4、继续百度+问大佬

在继续查找的时候,偶然间看到有的博客在讲设置linux的系统变量’HOSTNAME’。博主一脸懵逼,难道php程序已经可以设置linux的系统变量了吗,本来以为是php内的一个参数呢。后来直接问大佬,大佬说这个就是linux的一个变量参数,不用在意。。。行叭,最起码浪费了这么多时间,也算是有个结果。

加个判断:

if(array_key_exists( 'HOSTNAME', $_SERVER)) {//通过这种提示方式,去掉错误信息,先判断是否存在这个东西}else{}

4、关于linux的环境变量:

参考:https://blog.csdn.net/u010533843/article/details/54986646
      通过该文章,我们可以知道,最终在/etc/profile 中找到了HOSTNAME这个环境变量。代码里面的那句话,应该就是为了获取程序执行时候的linux主机名。
相关链接:https://liuleijsjx.iteye.com/blog/427900 (Linux主机名Hostname详解)

总结: 在这次查找中,找到了很多有关或者无关的东西,别人的一行代码就让我纠结半天,虽然这个人是大佬,但还是有点伤心,知识储备差远了,加油啊,铁柱!

end

php的$_SERVER['HOSTNAME']相关推荐

  1. 拦截PHP各种异常和错误,发生致命错误时进行报警,万事防患于未然

    原文:拦截PHP各种异常和错误,发生致命错误时进行报警,万事防患于未然 在日常开发中,大多数人的做法是在开发环境时开启调试模式,在产品环境关闭调试模式.在开发的时候可以查看各种错误.异常,但是在线上就 ...

  2. 用Nginx+Lua实现高性能、高可靠、安全的登陆验证

    对于一个中型或大型网站,有n个子项目在不同的服务器甚至不同的IDC部署和运行,SSO(单点登录)和无SESSION已经是必备的功能.在这种情况下用户登陆后的身份验证就会是一个问题.一种简单的解决办法就 ...

  3. php错误拦截机制,php拦截异常怎么写-PHP问题

    php拦截异常可以通过PHP的错误.异常机制及其内建数'set_exception_handler'.'set_error_handler'.'register_shutdown_function' ...

  4. LUA验证系统PHP,用Nginx+Lua实现高性能、高可靠、安全的登陆验证

    2013-03-02 21:52 3122人阅读 评论(0) 对于一个中型或大型网站,有n个子项目在不同的服务器甚至不同的IDC部署和运行,SSO(单点登录)和无SESSION已经是必备的功能.在这种 ...

  5. wazhu之agent功能详解

    一.日志数据收集 日志数据收集是从服务器或设备生成的记录中收集的实时过程.此组件可以通过文本文件或Windows事件日志接收日志.它还可以通过远程syslog直接接收日志,这对防火墙和其他此类设备非常 ...

  6. wazuh agent功能详解

    wazhu之agent功能详解 一.日志数据收集 日志数据收集是从服务器或设备生成的记录中收集的实时过程.此组件可以通过文本文件或Windows事件日志接收日志.它还可以通过远程syslog直接接收日 ...

  7. Ubuntu16.04 永久修改主机名 hostname

    1. 查看主机名 在终端输入 hostname 即可查看主机名 wohu@wohu:/$ hostname wohu wohu@wohu:/$ 2. 修改主机名 2.1 修改 /etc/hostnam ...

  8. php几个预定义变量$_SERVER['DOCUMENT_ROOT']

    <?php echo 'documentroot:'.$_SERVER['DOCUMENT_ROOT'].'<br>'; //根目录,在apache的配置文件里定义:httpd.co ...

  9. /etc/hosts/中HOSTNAME错误导致lsnrctl启动错误

    系统环境:REDHAT LINUX5.4 + ORACLE10.2.0.4,是通过虚拟机复制另外一台数据库系统环境后安装ORACLE获得. 故障现象:ORACLE安装正常,本地服务正常,本地数据通过I ...

最新文章

  1. 搭建struts2.1.6环境所需要的包(7个)
  2. lighttpd配置支持https
  3. 为什么 HashMap 的加载因子是0.75?
  4. php光标添加,JS在可编辑的div中的光标位置插入内容的方法_javascript技巧
  5. python切片操作的几种格式_【Python杂记】第四篇:序列切片
  6. php汽车之家数据api,基于聚合数据的全国违章直连查询接口示例-PHP版
  7. python画图显示不了中文_Python使用matplotlib绘图无法显示中文问题的解决方法
  8. python找出最小数_找出不除N的最小数
  9. 编程心法 之 内聚度和耦合度是什么
  10. 浅议基因测序技术的代际:后记
  11. java中的VO、PO、BO、DAO、POJO
  12. golang之web编程入门
  13. java heapdump 分析工具_Java Heap dump文件分析工具jhat简介
  14. centos 打包某个目录_Linux(CentOS)下目录档案管理以及档案文件系统打包压缩
  15. 非平衡电桥电阻计算_非平衡电桥的原理和应用 - 范文中心
  16. python大数据就业方向_大数据专业未来的就业方向有哪些?[黑马程序员]
  17. 虚拟机无法连接到图形服务器,vmware vsphere client无法连接到服务器
  18. 视频中场:中视频的复兴与前路
  19. 【arcgis符号库使用教程】
  20. 嵌入式系统(二):ARM芯片及体系架构(上)

热门文章

  1. 伯明翰大学计算机科学网络安全硕士,2020年伯明翰大学网络安全硕士专业硕士申请条件-学费-世界排名...
  2. 帝国cms会员充值交易推广分润系统的界面实现与开发记录
  3. __call__() got an unexpected keyword argument 'partition_info'
  4. netty3超长字符串
  5. E0144 const char * 类型的值不能用于初始化 char * 类型的实体
  6. js 读取flask后台变量
  7. Jquery 点击图片在弹出层显示大图
  8. python break
  9. windows下sse性能对比
  10. 光纤交换机如何划分zone