php的$_SERVER['HOSTNAME']

博主在更新代码后遇到不熟悉的$_SERVER['HOSTNAME']参数,PHP程序不能识别该参数,仅报notice级错误。经百度、谷歌及询问大佬,得知这是PHP的一个变量参数。最终在Linux环境变量中找到该参数,其作用是获取程序执行时的主机名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

      在最新一次更新代码后,发现代码中出现了$_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.youkuaiyun.com/u010533843/article/details/54986646
      通过该文章,我们可以知道,最终在/etc/profile 中找到了HOSTNAME这个环境变量。代码里面的那句话,应该就是为了获取程序执行时候的linux主机名。
相关链接:https://liuleijsjx.iteye.com/blog/427900 (Linux主机名Hostname详解)

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

end

### Zabbix 服务器和代理的配置与使用 #### 配置 Zabbix Server 为了使 Zabbix Server 正常工作,需确保其安装并正确配置数据库连接和其他必要设置。 1. 安装 Zabbix Server 及前端依赖包。对于基于 Debian 的系统: ```bash sudo apt update && sudo apt install zabbix-server-mysql zabbix-frontend-php php-mbstring php-gd php-bcmath php-xml php-zip unzip wget curl -y ``` 2. 初始化 MySQL 数据库用于存储监控数据,并创建相应的用户权限[^1]。 3. 编辑 `/etc/zabbix/zabbix_server.conf` 文件来指定数据库访问信息及其他选项,如监听地址等。 4. 启动服务并将之设为开机自启: ```bash systemctl start zabbix-server apache2 systemctl enable zabbix-server apache2 ``` #### 配置 Zabbix Agent 针对 Windows 或 Linux 主机上的 Zabbix Agent 进行如下调整以实现远程管理功能。 1. 将 `zabbix_agentd.conf` 移至 C:\Program Files\Zabbix\conf\ 并修改其中的关键参数: * `Server`: 设置为主 Zabbix Server IP 地址 (例如, 192.168.129.250). * `ServerActive`: 设定主动模式下的目标服务器地址同样指向上述 IP. * `Hostname`: 输入被监测设备的名字或唯一标识符(比如 "windows"). 2. 对于 Linux 系统还需注意 SELinux 状态可能影响 agent 功能正常发挥;而对于 Windows,则要确认防火墙允许必要的端口通信。 完成以上步骤之后重启相应组件使得更改生效即可开始利用 Zabbix 实施全面高效的 IT 基础设施性能跟踪分析了。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁柱同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值