超时限制,上传限制
This commit is contained in:
parent
795f5b7450
commit
f5fd840211
|
|
@ -1,5 +1,6 @@
|
|||
|
||||
[global]
|
||||
request_terminate_timeout = 30
|
||||
include={$SERVER_PATH}/php/{$PHP_VERSION}/etc/php-fpm.d/*.conf
|
||||
;php_value[auto_prepend_file]={$SERVER_PATH}/md_start.php
|
||||
;php_value[auto_append_file]={$SERVER_PATH}/md_end.php
|
||||
|
|
@ -5,8 +5,8 @@
|
|||
<p class="bgw" onclick="pluginService('php', $('.plugin_version').attr('version'));">服务</p>
|
||||
<p onclick="redisConfig();">安装扩展</p>
|
||||
<p onclick="phpSetConfig($('.plugin_version').attr('version'));">配置修改</p>
|
||||
<p onclick="redisConfig();">上传限制</p>
|
||||
<p onclick="redisStatus();">超时限制</p>
|
||||
<p onclick="phpUploadLimitReq($('.plugin_version').attr('version'));">上传限制</p>
|
||||
<p onclick="phpTimeLimitReq($('.plugin_version').attr('version'));">超时限制</p>
|
||||
<p onclick="pluginConfig('php', $('.plugin_version').attr('version'));">配置文件</p>
|
||||
<p onclick="redisStatus();">禁用函数</p>
|
||||
<p onclick="redisStatus();">性能调整</p>
|
||||
|
|
|
|||
|
|
@ -200,6 +200,95 @@ def submitPhpConf(version):
|
|||
return public.returnJson(True, '设置成功')
|
||||
|
||||
|
||||
def getLimitConf(version):
|
||||
fileini = getServerDir() + "/" + version + "/etc/php.ini"
|
||||
phpini = public.readFile(fileini)
|
||||
filefpm = getServerDir() + "/" + version + "/etc/php-fpm.conf"
|
||||
phpfpm = public.readFile(filefpm)
|
||||
|
||||
# print fileini, filefpm
|
||||
data = {}
|
||||
try:
|
||||
rep = "upload_max_filesize\s*=\s*([0-9]+)M"
|
||||
tmp = re.search(rep, phpini).groups()
|
||||
data['max'] = tmp[0]
|
||||
except:
|
||||
data['max'] = '50'
|
||||
|
||||
try:
|
||||
rep = "request_terminate_timeout\s*=\s*([0-9]+)\n"
|
||||
tmp = re.search(rep, phpfpm).groups()
|
||||
data['maxTime'] = tmp[0]
|
||||
except:
|
||||
data['maxTime'] = 0
|
||||
|
||||
try:
|
||||
rep = r"\n;*\s*cgi\.fix_pathinfo\s*=\s*([0-9]+)\s*\n"
|
||||
tmp = re.search(rep, phpini).groups()
|
||||
|
||||
if tmp[0] == '1':
|
||||
data['pathinfo'] = True
|
||||
else:
|
||||
data['pathinfo'] = False
|
||||
except:
|
||||
data['pathinfo'] = False
|
||||
|
||||
return public.getJson(data)
|
||||
|
||||
|
||||
def setMaxTime(version):
|
||||
args = getArgs()
|
||||
if not 'time' in args:
|
||||
return 'missing time args!'
|
||||
time = args['time']
|
||||
if int(time) < 30 or int(time) > 86400:
|
||||
return public.returnJson(False, '请填写30-86400间的值!')
|
||||
|
||||
filefpm = getServerDir() + "/" + version + "/etc/php-fpm.conf"
|
||||
conf = public.readFile(filefpm)
|
||||
rep = "request_terminate_timeout\s*=\s*([0-9]+)\n"
|
||||
conf = re.sub(rep, "request_terminate_timeout = " + time + "\n", conf)
|
||||
public.writeFile(filefpm, conf)
|
||||
|
||||
fileini = getServerDir() + "/" + version + "/etc/php.ini"
|
||||
phpini = public.readFile(fileini)
|
||||
rep = "max_execution_time\s*=\s*([0-9]+)\r?\n"
|
||||
phpini = re.sub(rep, "max_execution_time = " + time + "\n", phpini)
|
||||
rep = "max_input_time\s*=\s*([0-9]+)\r?\n"
|
||||
phpini = re.sub(rep, "max_input_time = " + time + "\n", phpini)
|
||||
public.writeFile(fileini, phpini)
|
||||
return public.returnJson(True, '设置成功!')
|
||||
|
||||
|
||||
def setMaxSize(version):
|
||||
args = getArgs()
|
||||
if not 'max' in args:
|
||||
return 'missing time args!'
|
||||
max = args['max']
|
||||
if int(max) < 2:
|
||||
return public.returnJson(False, '上传大小限制不能小于2MB!')
|
||||
|
||||
path = getServerDir() + '/' + version + '/etc/php.ini'
|
||||
conf = public.readFile(path)
|
||||
rep = u"\nupload_max_filesize\s*=\s*[0-9]+M"
|
||||
conf = re.sub(rep, u'\nupload_max_filesize = ' + max + 'M', conf)
|
||||
rep = u"\npost_max_size\s*=\s*[0-9]+M"
|
||||
conf = re.sub(rep, u'\npost_max_size = ' + max + 'M', conf)
|
||||
public.writeFile(path, conf)
|
||||
|
||||
# if public.get_webserver() == 'nginx':
|
||||
# path = web.ctx.session.setupPath + '/nginx/conf/nginx.conf'
|
||||
# conf = public.readFile(path)
|
||||
# rep = "client_max_body_size\s+([0-9]+)m"
|
||||
# tmp = re.search(rep, conf).groups()
|
||||
# if int(tmp[0]) < int(max):
|
||||
# conf = re.sub(rep, 'client_max_body_size ' + max + 'm', conf)
|
||||
# public.writeFile(path, conf)
|
||||
|
||||
public.writeLog("TYPE_PHP", "PHP_UPLOAD_MAX", (version, max))
|
||||
return public.returnJson(True, '设置成功!')
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
if len(sys.argv) < 3:
|
||||
|
|
@ -229,5 +318,11 @@ if __name__ == "__main__":
|
|||
print getPhpConf(version)
|
||||
elif func == 'submit_php_conf':
|
||||
print submitPhpConf(version)
|
||||
elif func == 'get_limit_conf':
|
||||
print getLimitConf(version)
|
||||
elif func == 'set_max_time':
|
||||
print setMaxTime(version)
|
||||
elif func == 'set_max_size':
|
||||
print setMaxSize(version)
|
||||
else:
|
||||
print "fail"
|
||||
|
|
|
|||
|
|
@ -87,203 +87,62 @@ function submitConf(version) {
|
|||
}
|
||||
|
||||
|
||||
//软件管理
|
||||
function phpSoftMain(name, key) {
|
||||
if (!isNaN(name)) {
|
||||
var nametext = "php" + name;
|
||||
name = name.replace(".", "");
|
||||
}
|
||||
|
||||
var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] });
|
||||
$.get('/plugins?action=getPluginInfo&name=php', function(rdata) {
|
||||
layer.close(loadT);
|
||||
nameA = rdata.versions[key];
|
||||
bodys = [
|
||||
'<p class="bgw pstate" data-id="0"><a href="javascript:service(\'' + name + '\',' + nameA.run + ')">' + lan.soft.php_main1 + '</a><span class="spanmove"></span></p>',
|
||||
'<p data-id="1"><a id="phpext" href="javascript:SetPHPConfig(\'' + name + '\',' + nameA.pathinfo + ')">' + lan.soft.php_main5 + '</a><span class="spanmove"></span></p>',
|
||||
'<p data-id="2"><a href="javascript:SetPHPConf(\'' + name + '\')">' + lan.soft.config_edit + '</a><span class="spanmove"></span></p>',
|
||||
'<p data-id="3"><a href="javascript:phpUploadLimit(\'' + name + '\',' + nameA.max + ')">' + lan.soft.php_main2 + '</a><span class="spanmove"></span></p>',
|
||||
'<p class="phphide" data-id="4"><a href="javascript:phpTimeLimit(\'' + name + '\',' + nameA.maxTime + ')">' + lan.soft.php_main3 + '</a><span class="spanmove"></span></p>',
|
||||
'<p data-id="5"><a href="javascript:configChange(\'' + name + '\')">' + lan.soft.php_main4 + '</a><span class="spanmove"></span></p>',
|
||||
'<p data-id="6"><a href="javascript:disFun(\'' + name + '\')">' + lan.soft.php_main6 + '</a><span class="spanmove"></span></p>',
|
||||
'<p class="phphide" data-id="7"><a href="javascript:SetFpmConfig(\'' + name + '\')">' + lan.soft.php_main7 + '</a><span class="spanmove"></span></p>',
|
||||
'<p class="phphide" data-id="8"><a href="javascript:GetPHPStatus(\'' + name + '\')">' + lan.soft.php_main8 + '</a><span class="spanmove"></span></p>',
|
||||
'<p class="phphide" data-id="9"><a href="javascript:GetFpmLogs(\'' + name + '\')">FPM日志</a><span class="spanmove"></span></p>',
|
||||
'<p class="phphide" data-id="10"><a href="javascript:GetFpmSlowLogs(\'' + name + '\')">慢日志</a><span class="spanmove"></span></p>',
|
||||
'<p data-id="11"><a href="javascript:BtPhpinfo(\'' + name + '\')">phpinfo</a><span class="spanmove"></span></p>'
|
||||
]
|
||||
|
||||
var sdata = '';
|
||||
if (rdata.phpSort == false) {
|
||||
rdata.phpSort = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
|
||||
} else {
|
||||
rdata.phpSort = rdata.phpSort.split('|');
|
||||
}
|
||||
for (var i = 0; i < rdata.phpSort.length; i++) {
|
||||
sdata += bodys[rdata.phpSort[i]];
|
||||
}
|
||||
|
||||
layer.open({
|
||||
type: 1,
|
||||
area: '640px',
|
||||
title: nametext + lan.soft.admin,
|
||||
closeBtn: 2,
|
||||
shift: 0,
|
||||
content: '<div class="bt-w-main" style="width:640px;">\
|
||||
<input name="softMenuSortOrder" type="hidden" />\
|
||||
<div class="bt-w-menu soft-man-menu">\
|
||||
' + sdata + '\
|
||||
</div>\
|
||||
<div id="webEdit-con" class="bt-w-con pd15" style="height:555px;overflow:auto">\
|
||||
<div class="soft-man-con"></div>\
|
||||
</div>\
|
||||
</div>'
|
||||
});
|
||||
if (name == "52") {
|
||||
$(".phphide").hide();
|
||||
}
|
||||
|
||||
if (rdata.versions.length < 5) {
|
||||
$(".phphide").hide();
|
||||
$(".pstate").hide();
|
||||
SetPHPConfig(name, nameA.pathinfo);
|
||||
$("p[data-id='4']").addClass('bgw');
|
||||
} else {
|
||||
service(name, nameA.run);
|
||||
}
|
||||
|
||||
$(".bt-w-menu p a").click(function() {
|
||||
var txt = $(this).text();
|
||||
$(this).parent().addClass("bgw").siblings().removeClass("bgw");
|
||||
if (txt != lan.soft.php_menu_ext) $(".soft-man-con").removeAttr("style");
|
||||
});
|
||||
$(".soft-man-menu").dragsort({ dragSelector: ".spanmove", dragEnd: MenusaveOrder });
|
||||
//php上传限制
|
||||
function phpUploadLimitReq(version){
|
||||
phpPost('get_limit_conf', version, '', function(ret_data){
|
||||
var rdata = $.parseJSON(ret_data.data);
|
||||
phpUploadLimit(version,rdata['max']);
|
||||
});
|
||||
}
|
||||
|
||||
//FPM日志
|
||||
function GetFpmLogs(phpversion) {
|
||||
var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] });
|
||||
$.get('/ajax?action=GetFpmLogs&version=' + phpversion, function(logs) {
|
||||
layer.close(loadT);
|
||||
if (logs.status !== true) {
|
||||
logs.msg = '';
|
||||
}
|
||||
if (logs.msg == '') logs.msg = '当前没有fpm日志.';
|
||||
var phpCon = '<textarea readonly="" style="margin: 0px;width: 500px;height: 520px;background-color: #333;color:#fff; padding:0 5px" id="error_log">' + logs.msg + '</textarea>';
|
||||
$(".soft-man-con").html(phpCon);
|
||||
var ob = document.getElementById('error_log');
|
||||
ob.scrollTop = ob.scrollHeight;
|
||||
});
|
||||
function phpUploadLimit(version,max){
|
||||
var LimitCon = '<p class="conf_p"><input class="phpUploadLimit bt-input-text mr5" type="number" value="'+
|
||||
max+'" name="max">MB<button class="btn btn-success btn-sm" onclick="setPHPMaxSize(\''+
|
||||
version+'\')" style="margin-left:20px">保存</button></p>';
|
||||
$(".soft-man-con").html(LimitCon);
|
||||
}
|
||||
|
||||
//FPM-Slow日志
|
||||
function GetFpmSlowLogs(phpversion) {
|
||||
var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] });
|
||||
$.get('/ajax?action=GetFpmSlowLogs&version=' + phpversion, function(logs) {
|
||||
layer.close(loadT);
|
||||
if (logs.status !== true) {
|
||||
logs.msg = '';
|
||||
}
|
||||
if (logs.msg == '') logs.msg = '当前没有慢日志.';
|
||||
var phpCon = '<textarea readonly="" style="margin: 0px;width: 500px;height: 520px;background-color: #333;color:#fff; padding:0 5px" id="error_log">' + logs.msg + '</textarea>';
|
||||
$(".soft-man-con").html(phpCon);
|
||||
var ob = document.getElementById('error_log');
|
||||
ob.scrollTop = ob.scrollHeight;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
//php超时限制
|
||||
function phpTimeLimitReq(version){
|
||||
phpPost('get_limit_conf', version, '', function(ret_data){
|
||||
var rdata = $.parseJSON(ret_data.data);
|
||||
phpTimeLimit(version,rdata['maxTime']);
|
||||
});
|
||||
}
|
||||
|
||||
function phpTimeLimit(version, max) {
|
||||
var LimitCon = '<p class="conf_p"><input class="phpTimeLimit bt-input-text mr5" type="number" value="' + max + '">' + lan.bt.s + '<button class="btn btn-success btn-sm" onclick="SetPHPMaxTime(\'' + version + '\')" style="margin-left:20px">' + lan.public.save + '</button></p>';
|
||||
var LimitCon = '<p class="conf_p"><input class="phpTimeLimit bt-input-text mr5" type="number" value="' + max + '">秒<button class="btn btn-success btn-sm" onclick="setPHPMaxTime(\'' + version + '\')" style="margin-left:20px">保存</button></p>';
|
||||
$(".soft-man-con").html(LimitCon);
|
||||
}
|
||||
|
||||
//设置超时限制
|
||||
function SetPHPMaxTime(version) {
|
||||
function setPHPMaxTime(version) {
|
||||
var max = $(".phpTimeLimit").val();
|
||||
var loadT = layer.msg(lan.soft.the_save, { icon: 16, time: 0, shade: [0.3, '#000'] });
|
||||
$.post('/config?action=setPHPMaxTime', 'version=' + version + '&time=' + max, function(rdata) {
|
||||
$(".bt-w-menu .active").attr('onclick', "phpTimeLimit('" + version + "'," + max + ")");
|
||||
$(".bt-w-menu .active a").attr('href', "javascript:phpTimeLimit('" + version + "'," + max + ");");
|
||||
layer.close(loadT);
|
||||
phpPost('set_max_time',version,{'time':max},function(data){
|
||||
var rdata = $.parseJSON(data.data);
|
||||
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
|
||||
});
|
||||
}
|
||||
//设置PHP上传限制
|
||||
function SetPHPMaxSize(version) {
|
||||
function setPHPMaxSize(version) {
|
||||
max = $(".phpUploadLimit").val();
|
||||
if (max < 2) {
|
||||
alert(max);
|
||||
layer.msg(lan.soft.php_upload_size, { icon: 2 });
|
||||
layer.msg('上传大小限制不能小于2M', { icon: 2 });
|
||||
return;
|
||||
}
|
||||
var loadT = layer.msg(lan.soft.the_save, { icon: 16, time: 0, shade: [0.3, '#000'] });
|
||||
$.post('/config?action=setPHPMaxSize', '&version=' + version + '&max=' + max, function(rdata) {
|
||||
$(".bt-w-menu .active").attr('onclick', "phpUploadLimit('" + version + "'," + max + ")");
|
||||
$(".bt-w-menu .active a").attr('href', "javascript:phpUploadLimit('" + version + "'," + max + ");");
|
||||
layer.close(loadT);
|
||||
|
||||
phpPost('set_max_size',version,{'max':max},function(data){
|
||||
var rdata = $.parseJSON(data.data);
|
||||
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
|
||||
})
|
||||
}
|
||||
//配置修改
|
||||
function configChange(type) {
|
||||
var con = '<p style="color: #666; margin-bottom: 7px">' + lan.bt.edit_ps + '</p><textarea class="bt-input-text" style="height: 320px; line-height:18px;" id="textBody"></textarea>\
|
||||
<button id="OnlineEditFileBtn" class="btn btn-success btn-sm" style="margin-top:10px;">' + lan.public.save + '</button>\
|
||||
<ul class="help-info-text c7 ptb15">\
|
||||
<li>' + lan.get('config_edit_ps', [type]) + '</li>\
|
||||
</ul>';
|
||||
$(".soft-man-con").html(con);
|
||||
var fileName = '';
|
||||
switch (type) {
|
||||
case 'mysqld':
|
||||
fileName = '/etc/my.cnf';
|
||||
break;
|
||||
case 'nginx':
|
||||
fileName = '/www/server/nginx/conf/nginx.conf';
|
||||
break;
|
||||
case 'pure-ftpd':
|
||||
fileName = '/www/server/pure-ftpd/etc/pure-ftpd.conf';
|
||||
break;
|
||||
case 'apache':
|
||||
fileName = '/www/server/apache/conf/httpd.conf';
|
||||
break;
|
||||
case 'tomcat':
|
||||
fileName = '/www/server/tomcat/conf/server.xml';
|
||||
break;
|
||||
case 'memcached':
|
||||
fileName = '/etc/init.d/memcached';
|
||||
break;
|
||||
case 'redis':
|
||||
fileName = '/www/server/redis/redis.conf';
|
||||
break;
|
||||
default:
|
||||
fileName = '/www/server/php/' + type + '/etc/php.ini';
|
||||
break;
|
||||
}
|
||||
var loadT = layer.msg(lan.soft.get, { icon: 16, time: 0, shade: [0.3, '#000'] });
|
||||
$.post('/files?action=GetFileBody', 'path=' + fileName, function(rdata) {
|
||||
layer.close(loadT);
|
||||
$("#textBody").empty().text(rdata.data);
|
||||
$(".CodeMirror").remove();
|
||||
var editor = CodeMirror.fromTextArea(document.getElementById("textBody"), {
|
||||
extraKeys: { "Ctrl-Space": "autocomplete" },
|
||||
lineNumbers: true,
|
||||
matchBrackets: true,
|
||||
});
|
||||
editor.focus();
|
||||
$(".CodeMirror-scroll").css({ "height": "300px", "margin": 0, "padding": 0 });
|
||||
$("#OnlineEditFileBtn").click(function() {
|
||||
$("#textBody").text(editor.getValue());
|
||||
confSafe(fileName);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//设置PATHINFO
|
||||
function SetPathInfo(version, type) {
|
||||
function setPathInfo(version, type) {
|
||||
var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] });
|
||||
$.post('/config?action=setPathInfo', 'version=' + version + '&type=' + type, function(rdata) {
|
||||
var pathinfo = (type == 'on') ? true : false;
|
||||
|
|
@ -301,7 +160,7 @@ function SetPathInfo(version, type) {
|
|||
|
||||
|
||||
//PHP扩展配置
|
||||
function SetPHPConfig(version, pathinfo, go) {
|
||||
function setPHPConfig(version, pathinfo, go) {
|
||||
$.get('/ajax?action=GetPHPConfig&version=' + version, function(rdata) {
|
||||
var body = ""
|
||||
var opt = ""
|
||||
|
|
@ -636,11 +495,7 @@ function GetPHPStatus(version) {
|
|||
}
|
||||
|
||||
|
||||
//php上传限制
|
||||
function phpUploadLimit(version, max) {
|
||||
var LimitCon = '<p class="conf_p"><input class="phpUploadLimit bt-input-text mr5" type="number" value="' + max + '" name="max">MB<button class="btn btn-success btn-sm" onclick="SetPHPMaxSize(\'' + version + '\')" style="margin-left:20px">' + lan.public.save + '</button></p>';
|
||||
$(".soft-man-con").html(LimitCon);
|
||||
}
|
||||
|
||||
|
||||
function GetPHPStatus(a) {
|
||||
if(a == "52") {
|
||||
|
|
@ -657,7 +512,7 @@ function GetPHPStatus(a) {
|
|||
closeBtn: 2,
|
||||
shift: 5,
|
||||
shadeClose: true,
|
||||
content: "<div style='margin:15px;'><table class='table table-hover table-bordered'> <tr><th>"+lan.bt.php_pool+"</th><td>" + b.pool + "</td></tr> <tr><th>"+lan.bt.php_manager+"</th><td>" + ((b["process manager"] == "dynamic") ? lan.bt.dynamic : lan.bt.static) + "</td></tr> <tr><th>"+lan.bt.php_start+"</th><td>" + b["start time"] + "</td></tr> <tr><th>"+lan.bt.php_accepted+"</th><td>" + b["accepted conn"] + "</td></tr> <tr><th>"+lan.bt.php_queue+"</th><td>" + b["listen queue"] + "</td></tr> <tr><th>"+lan.bt.php_max_queue+"</th><td>" + b["max listen queue"] + "</td></tr> <tr><th>"+lan.bt.php_len_queue+"</th><td>" + b["listen queue len"] + "</td></tr> <tr><th>"+lan.bt.php_idle+"</th><td>" + b["idle processes"] + "</td></tr> <tr><th>"+lan.bt.php_active+"</th><td>" + b["active processes"] + "</td></tr> <tr><th>"+lan.bt.php_total+"</th><td>" + b["total processes"] + "</td></tr> <tr><th>"+lan.bt.php_max_active+"</th><td>" + b["max active processes"] + "</td></tr> <tr><th>"+lan.bt.php_max_children+"</th><td>" + b["max children reached"] + "</td></tr> <tr><th>"+lan.bt.php_slow+"</th><td>" + b["slow requests"] + "</td></tr> </table></div>"
|
||||
content: "<div style='margin:15px;'><table class='table table-hover table-bordered'><tr><th>"+lan.bt.php_pool+"</th><td>" + b.pool + "</td></tr><tr><th>"+lan.bt.php_manager+"</th><td>" + ((b["process manager"] == "dynamic") ? lan.bt.dynamic : lan.bt.static) + "</td></tr><tr><th>"+lan.bt.php_start+"</th><td>" + b["start time"] + "</td></tr> <tr><th>"+lan.bt.php_accepted+"</th><td>" + b["accepted conn"] + "</td></tr> <tr><th>"+lan.bt.php_queue+"</th><td>" + b["listen queue"] + "</td></tr> <tr><th>"+lan.bt.php_max_queue+"</th><td>" + b["max listen queue"] + "</td></tr> <tr><th>"+lan.bt.php_len_queue+"</th><td>" + b["listen queue len"] + "</td></tr> <tr><th>"+lan.bt.php_idle+"</th><td>" + b["idle processes"] + "</td></tr> <tr><th>"+lan.bt.php_active+"</th><td>" + b["active processes"] + "</td></tr> <tr><th>"+lan.bt.php_total+"</th><td>" + b["total processes"] + "</td></tr> <tr><th>"+lan.bt.php_max_active+"</th><td>" + b["max active processes"] + "</td></tr> <tr><th>"+lan.bt.php_max_children+"</th><td>" + b["max children reached"] + "</td></tr> <tr><th>"+lan.bt.php_slow+"</th><td>" + b["slow requests"] + "</td></tr> </table></div>"
|
||||
})
|
||||
})
|
||||
}
|
||||
Loading…
Reference in New Issue