首页
关于
网站流量统计
图库记录
解忧屋
友情链接
搜索
1
python浏览器自动化点击工具 - 基于DrissionPage库实现
38 阅读
2
python搜索引擎热点采集工具 - 基于DrissionPage库实现
25 阅读
3
学习前言 - 智慧作业管理系统
23 阅读
4
joe主题宝塔数据未能展示修复 - 网站流量统计
22 阅读
5
python3.9安装
17 阅读
作业管理系统
python自动化
typecho二次开发
SEO-我的第一份工作
PyTorch深度学习笔记
登录
Search
标签搜索
python
seo
DrissionPage
自动化
内容采集
自动化点击
python安装教程
自动采集
python3.9
python环境变量配置
作业管理系统
教师管理作业
学生上传作业
thinkphp6
mysql
php
typecho
typecho二次开发
网站流量统计修复
joe主题bug
RQ桑
累计撰写
14
篇文章
累计收到
36
条评论
首页
栏目
作业管理系统
python自动化
typecho二次开发
SEO-我的第一份工作
PyTorch深度学习笔记
页面
关于
网站流量统计
图库记录
解忧屋
友情链接
搜索到
1
篇与
的结果
joe主题宝塔数据未能展示修复 - 网站流量统计
一、问题缘由我在使用joe主题的过程中,发现网站流量统计,有一个宝塔服务器的对接功能,但是在配置好宝塔的api和密钥后,发现无法使用,花费了1个小时(实际上几天的挣扎后 ::(狂汗) ),终于找到问题的根源,下面是解决问题的过程!{callout color="#f0ad4e"}解决答案放在文章底部。{/callout}二、基本配置在宝塔后台开启API接口,配置线上服务器的ip到白名单里,然后获取 宝塔地址 和 密钥在joe主题修改外观的其他设置,先配置好 宝塔地址 和 密钥没有出现信息【首先确保前面两个步骤没问题】,那么问题就不就不离十跟我遇到的一样了。 三、修复过程{card-list}{card-list-item}1.HTML端排查开启浏览器F12开发者模式,获取对应位置的class名称“joe_census__server”,找到相应源代码的位置:census.php文件下可以看到的是,里面的代码都是静态的,通过一个<?php if ($this->options->JBTPanel && $this->options->JBTKey) : ?>的判断去输出这块的内容,其实这块就是看你有没有配置这个信息,只要没有配置就是不输出,所以第一步没有找到问题的根源,但是在文件开头有一个<script src="<?php _getAssets('assets/js/joe.census.min.js'); ?>"></script>我尝试从里面寻找答案,测试时要把 min 去掉,测试压缩前的js文件--><script src="<?php _getAssets('assets/js/joe.census.js'); ?>"></script>{/card-list-item}{card-list-item}2.JavaScript排查在joe.census.js文件中,可以看到,其实是通过ajax请求后台php,去获取服务器内核数据的,再通过dom操作将内核数据插入到的html里。所以我在这些位置添加console.log()在控制台看请求的结果,这个结果让我非常惊喜,居然走到了error分支,responseText的代码是这样的,内核数据都出来了,但是有一个Warning警告,说明系统其实已经请求到数据了,但是没有走到success分支接下来,我沿着错误从ajax请求的后台路径,去找到请求的api{/card-list-item}{card-list-item}3.PHP脚本端排查$.ajax({ url: Joe.BASE_API, type: 'POST', dataType: 'json', data: { routeType: 'server_status' },...可以工具请求的特征,是通过一个server_status参数去请求一个http://my.srqcode.com/joe/api,接下来需要做的就是去找到这个api的位置,去看看请求的函数。在core目录下的core.php中,可以找到这段代码: {message type="info" content="说明在请求中,走到server_status分支时,回去请求一个_getServerStatus($self);方法,继续找到这个方法:"/}在找到这个方法后,看到$self->response->throwJson(array( /* 状态 */ "status" => $response ? true : false, /* 信息提示 */ "message" => $response['msg'], /* 上行流量KB */ "up" => $response["up"] ? $response["up"] : 0, /* 下行流量KB */ "down" => $response["down"] ? $response["down"] : 0, /* 总发送(字节数) */ "upTotal" => $response["upTotal"] ? $response["upTotal"] : 0, /* 总接收(字节数) */ "downTotal" => $response["downTotal"] ? $response["downTotal"] : 0, /* 内存占用 */ "memory" => $response["mem"] ? $response["mem"] : ["memBuffers" => 0, "memCached" => 0, "memFree" => 0, "memRealUsed" => 0, "memTotal" => 0], /* CPU */ "cpu" => $response["cpu"] ? $response["cpu"] : [0, 0, [0], 0, 0, 0], /* 系统负载 */ "load" => $response["load"] ? $response["load"] : ["fifteen" => 0, "five" => 0, "limit" => 0, "max" => 0, "one" => 0, "safe" => 0], ));还记得之前的报错吗,message未定义,找到宝塔最新的 api接口文档其实报错也已经提示错误的位置了 Warning: Undefined array key "msg" in /www/wwwroot/my.srqcode.com/usr/themes/Joe-master/core/route.php on line 325 {message type="success" content="果然,接口文档里面根本没有 message 这个字段,作者在写这个主题的时候可能还有这个参数,现在是没有了,把 message 行注释掉,问题就解决了,还记得
2024年06月09日
22 阅读
3 评论
3 点赞