CMS:客制化之服务器信息 - zhonglong/TPV GitHub Wiki

关于服务器信息,有些可以通过PHP接口获取,例如磁盘容量,操作系统和服务器IP地址,其他只能通过操作系统接口,分Windows和Linux两种:

  • Windows操作系统通过wmic命令,取得CPU和内存信息,此命令可在命令提示符下使用
  • Linux操作系统通过读取/proc目录下的文件,访问CPU和内存信息

Github上有个开源的PHP探针源代码参考:

phpprobe探针用于探测web运行环境、php信息,查看服务器IP地址,服务器硬盘资源,内存占用,cpu等信息。
https://github.com/fbcha/phpprobe
CPU核心数
  • Windows:wmic cpu get NumberOfCores命令
  • Linux:访问/proc/cpuinfo文件,过滤出cpu cores(物理核)和processor数量(逻辑核),针对各种云平台返回逻辑核心数,否则返回物理核心数
内存容量
  • Windows:wmic os get TotalVisibleMemorySize命令
  • Linux:访问/proc/meminfo文件,过滤出MemTotal信息
磁盘容量

disk_total_space("."),实际取得当前分区的总容量

操作系统

php_uname('s')

IP地址

gethostbyname(filter_input(INPUT_SERVER, 'SERVER_NAME')) 若无法解析服务器名称,则返回127.0.0.1

服务器位置

没有可用接口,针对部署的服务器分别显示,例如阿里云显示“浙江省杭州市”,在settings.php文件增加配置信息: define('CMS_TARGET', 'aliyun');

CPU使用情况
  • Windows:wmic cpu get LoadPercentage命令
  • Linux:访问/proc/stat文件,统计开机至今的CPU各种状态的时间,分别记录总时间和非空闲时间;在很短的时间内连续获取两次取差值,用非空闲时间除以总时间得到CPU的瞬时使用率

CPU使用情况折线图通过 echarts 开源库绘制,有个 Dynamic Data + Time Axis 的示例代码:

Dynamic Data + Time Axis
http://echarts.baidu.com/examples/