php的$_SERVER['HOSTNAME']
一、前言
在最新一次更新代码后,发现代码中出现了$_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']相关推荐
- 拦截PHP各种异常和错误,发生致命错误时进行报警,万事防患于未然
原文:拦截PHP各种异常和错误,发生致命错误时进行报警,万事防患于未然 在日常开发中,大多数人的做法是在开发环境时开启调试模式,在产品环境关闭调试模式.在开发的时候可以查看各种错误.异常,但是在线上就 ...
- 用Nginx+Lua实现高性能、高可靠、安全的登陆验证
对于一个中型或大型网站,有n个子项目在不同的服务器甚至不同的IDC部署和运行,SSO(单点登录)和无SESSION已经是必备的功能.在这种情况下用户登陆后的身份验证就会是一个问题.一种简单的解决办法就 ...
- php错误拦截机制,php拦截异常怎么写-PHP问题
php拦截异常可以通过PHP的错误.异常机制及其内建数'set_exception_handler'.'set_error_handler'.'register_shutdown_function' ...
- LUA验证系统PHP,用Nginx+Lua实现高性能、高可靠、安全的登陆验证
2013-03-02 21:52 3122人阅读 评论(0) 对于一个中型或大型网站,有n个子项目在不同的服务器甚至不同的IDC部署和运行,SSO(单点登录)和无SESSION已经是必备的功能.在这种 ...
- wazhu之agent功能详解
一.日志数据收集 日志数据收集是从服务器或设备生成的记录中收集的实时过程.此组件可以通过文本文件或Windows事件日志接收日志.它还可以通过远程syslog直接接收日志,这对防火墙和其他此类设备非常 ...
- wazuh agent功能详解
wazhu之agent功能详解 一.日志数据收集 日志数据收集是从服务器或设备生成的记录中收集的实时过程.此组件可以通过文本文件或Windows事件日志接收日志.它还可以通过远程syslog直接接收日 ...
- Ubuntu16.04 永久修改主机名 hostname
1. 查看主机名 在终端输入 hostname 即可查看主机名 wohu@wohu:/$ hostname wohu wohu@wohu:/$ 2. 修改主机名 2.1 修改 /etc/hostnam ...
- php几个预定义变量$_SERVER['DOCUMENT_ROOT']
<?php echo 'documentroot:'.$_SERVER['DOCUMENT_ROOT'].'<br>'; //根目录,在apache的配置文件里定义:httpd.co ...
- /etc/hosts/中HOSTNAME错误导致lsnrctl启动错误
系统环境:REDHAT LINUX5.4 + ORACLE10.2.0.4,是通过虚拟机复制另外一台数据库系统环境后安装ORACLE获得. 故障现象:ORACLE安装正常,本地服务正常,本地数据通过I ...
最新文章
- 搭建struts2.1.6环境所需要的包(7个)
- lighttpd配置支持https
- 为什么 HashMap 的加载因子是0.75?
- php光标添加,JS在可编辑的div中的光标位置插入内容的方法_javascript技巧
- python切片操作的几种格式_【Python杂记】第四篇:序列切片
- php汽车之家数据api,基于聚合数据的全国违章直连查询接口示例-PHP版
- python画图显示不了中文_Python使用matplotlib绘图无法显示中文问题的解决方法
- python找出最小数_找出不除N的最小数
- 编程心法 之 内聚度和耦合度是什么
- 浅议基因测序技术的代际:后记
- java中的VO、PO、BO、DAO、POJO
- golang之web编程入门
- java heapdump 分析工具_Java Heap dump文件分析工具jhat简介
- centos 打包某个目录_Linux(CentOS)下目录档案管理以及档案文件系统打包压缩
- 非平衡电桥电阻计算_非平衡电桥的原理和应用 - 范文中心
- python大数据就业方向_大数据专业未来的就业方向有哪些?[黑马程序员]
- 虚拟机无法连接到图形服务器,vmware vsphere client无法连接到服务器
- 视频中场:中视频的复兴与前路
- 【arcgis符号库使用教程】
- 嵌入式系统(二):ARM芯片及体系架构(上)
热门文章
- 伯明翰大学计算机科学网络安全硕士,2020年伯明翰大学网络安全硕士专业硕士申请条件-学费-世界排名...
- 帝国cms会员充值交易推广分润系统的界面实现与开发记录
- __call__() got an unexpected keyword argument 'partition_info'
- netty3超长字符串
- E0144	const char * 类型的值不能用于初始化 char * 类型的实体
- js 读取flask后台变量
- Jquery 点击图片在弹出层显示大图
- python break
- windows下sse性能对比
- 光纤交换机如何划分zone