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/