//软件管理 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('/plugin?action=getPluginInfo&name=php', function(rdata) { layer.close(loadT); nameA = rdata.versions[key]; bodys = [ '

' + lan.soft.php_main1 + '

', '

' + lan.soft.php_main5 + '

', '

' + lan.soft.config_edit + '

', '

' + lan.soft.php_main2 + '

', '

' + lan.soft.php_main3 + '

', '

' + lan.soft.php_main4 + '

', '

' + lan.soft.php_main6 + '

', '

' + lan.soft.php_main7 + '

', '

' + lan.soft.php_main8 + '

', '

FPM日志

', '

慢日志

', '

phpinfo

' ] 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: '
\ \
\ ' + sdata + '\
\
\
\
\
' }); 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 }); }); } //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 = ''; $(".soft-man-con").html(phpCon); var ob = document.getElementById('error_log'); ob.scrollTop = ob.scrollHeight; }); } //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 = ''; $(".soft-man-con").html(phpCon); var ob = document.getElementById('error_log'); ob.scrollTop = ob.scrollHeight; }); } //配置修改 function SetPHPConf(version) { var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/config?action=GetPHPConf', 'version=' + version, function(rdata) { layer.close(loadT); var mlist = ''; for (var i = 0; i < rdata.length; i++) { var w = '70' if (rdata[i].name == 'error_reporting') w = '250'; var ibody = ''; switch (rdata[i].type) { case 0: var selected_1 = (rdata[i].value == 1) ? 'selected' : ''; var selected_0 = (rdata[i].value == 0) ? 'selected' : ''; ibody = '' break; case 1: var selected_1 = (rdata[i].value == 'On') ? 'selected' : ''; var selected_0 = (rdata[i].value == 'Off') ? 'selected' : ''; ibody = '' break; } mlist += '

' + rdata[i].name + '' + ibody + ', ' + rdata[i].ps + '

' } var phpCon = '
\ ' + mlist + '\
\
' $(".soft-man-con").html(phpCon); }); } //提交PHP配置 function SubmitPHPConf(version) { var data = { version: version, display_errors: $("select[name='display_errors']").val(), 'cgi.fix_pathinfo': $("select[name='cgi.fix_pathinfo']").val(), 'date.timezone': $("input[name='date.timezone']").val(), short_open_tag: $("select[name='short_open_tag']").val(), asp_tags: $("select[name='asp_tags']").val() || 'On', safe_mode: $("select[name='safe_mode']").val(), max_execution_time: $("input[name='max_execution_time']").val(), max_input_time: $("input[name='max_input_time']").val(), memory_limit: $("input[name='memory_limit']").val(), post_max_size: $("input[name='post_max_size']").val(), file_uploads: $("select[name='file_uploads']").val(), upload_max_filesize: $("input[name='upload_max_filesize']").val(), max_file_uploads: $("input[name='max_file_uploads']").val(), default_socket_timeout: $("input[name='default_socket_timeout']").val(), error_reporting: $("input[name='error_reporting']").val() || 'On' } var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/config?action=SetPHPConf', data, function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }); } function MenusaveOrder() { var data = $(".soft-man-menu > p").map(function() { return $(this).attr("data-id"); }).get(); var ssort = data.join("|"); $("input[name=softMenuSortOrder]").val(ssort); $.post('/ajax?action=phpSort', 'ssort=' + ssort, function() {}); }; //服务 function service(name, status) { if (status == 'false') status = false; if (status == 'true') status = true; var serviceCon = '

' + lan.soft.status + ':' + (status ? lan.soft.on : lan.soft.off) + '

\
\ \ \ \
'; $(".soft-man-con").html(serviceCon); var help = ''; if (name == 'mysqld') { $(".soft-man-con").append(help); } } //php上传限制 function phpUploadLimit(version, max) { var LimitCon = '

MB

'; $(".soft-man-con").html(LimitCon); } //php超时限制 function phpTimeLimit(version, max) { var LimitCon = '

' + lan.bt.s + '

'; $(".soft-man-con").html(LimitCon); } //设置超时限制 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); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }); } //设置PHP上传限制 function SetPHPMaxSize(version) { max = $(".phpUploadLimit").val(); if (max < 2) { alert(max); layer.msg(lan.soft.php_upload_size, { 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); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }) } //配置修改 function configChange(type) { var con = '

' + lan.bt.edit_ps + '

\ \ '; $(".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); }); }); } //配置保存 function confSafe(fileName) { var data = encodeURIComponent($("#textBody").val()); var encoding = 'utf-8'; var loadT = layer.msg(lan.soft.the_save, { icon: 16, time: 0 }); $.post('/files?action=SaveFileBody', 'data=' + data + '&path=' + fileName + '&encoding=' + encoding, function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }); } //设置PATHINFO 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; var pathinfoOpt = '' + lan.public.off + '' if (!pathinfo) { pathinfoOpt = '' + lan.public.on + '' } var pathinfo1 = 'PATH_INFO' + lan.soft.php_menu_ext + '' + lan.soft.mvc_ps + '' + pathinfoOpt + ''; $("#pathInfo").html(pathinfo1); $(".bt-w-menu .bgw").attr('onclick', "SetPHPConfig('" + version + "'," + pathinfo + ",1)"); $(".bt-w-menu .bgw a").attr('href', "javascript:SetPHPConfig('" + version + "'," + pathinfo + ",1);"); layer.msg(rdata.msg, { icon: 1 }); }); } //PHP扩展配置 function SetPHPConfig(version, pathinfo, go) { $.get('/ajax?action=GetPHPConfig&version=' + version, function(rdata) { var body = "" var opt = "" for (var i = 0; i < rdata.libs.length; i++) { if (rdata.libs[i].versions.indexOf(version) == -1) continue; if (rdata.libs[i]['task'] == '-1' && rdata.libs[i].phpversions.indexOf(version) != -1) { opt = '' + lan.soft.the_install + '' } else if (rdata.libs[i]['task'] == '0' && rdata.libs[i].phpversions.indexOf(version) != -1) { opt = '' + lan.soft.sleep_install + '' } else if (rdata.libs[i].status) { opt = '' + lan.soft.uninstall + '' } else { opt = '' + lan.soft.install + '' } body += '' + '' + rdata.libs[i].name + '' + '' + rdata.libs[i].type + '' + '' + rdata.libs[i].msg + '' + '' + '' + opt + '' + '' } var pathinfoOpt = '' + lan.soft.off + '' if (!rdata.pathinfo) { pathinfoOpt = '' + lan.soft.on + '' } var pathinfo1 = 'PATH_INFO' + lan.soft.php_menu_ext + '' + lan.soft.mvc_ps + '' + pathinfoOpt + ''; var con = '
' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + pathinfo1 + body + '' + '
' + lan.soft.php_ext_name + '' + lan.soft.php_ext_type + '' + lan.soft.php_ext_ps + '' + lan.soft.php_ext_status + '' + lan.public.action + '
' + '
' + ''; var divObj = document.getElementById('phpextdiv'); var scrollTopNum = 0; if (divObj) scrollTopNum = divObj.scrollTop; $(".soft-man-con").html(con); document.getElementById('phpextdiv').scrollTop = scrollTopNum; }); if (go == undefined) { setTimeout(function() { if ($(".bgw #phpext").html() != '安装扩展') { return; } SetPHPConfig(version, pathinfo); }, 3000); } } //安装扩展 function InstallPHPLib(version, name, title, pathinfo) { layer.confirm(lan.soft.php_ext_install_confirm.replace('{1}', name), { icon: 3, closeBtn: 2 }, function() { name = name.toLowerCase(); var data = "name=" + name + "&version=" + version + "&type=1"; var loadT = layer.msg(lan.soft.add_install, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/files?action=InstallSoft', data, function(rdata) { setTimeout(function() { layer.close(loadT); SetPHPConfig(version, pathinfo, true); setTimeout(function() { layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }, 1000); }, 1000); }); fly("bi-btn"); InstallTips(); GetTaskCount(); }); } //卸载扩展 function UninstallPHPLib(version, name, title, pathinfo) { layer.confirm(lan.soft.php_ext_uninstall_confirm.replace('{1}', name), { icon: 3, closeBtn: 2 }, function() { name = name.toLowerCase(); var data = 'name=' + name + '&version=' + version; var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/files?action=UninstallSoft', data, function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); SetPHPConfig(version, pathinfo, true); }); }); } //禁用函数 function disFun(version) { $.get('/ajax?action=GetPHPConfig&version=' + version, function(rdata) { var disable_functions = rdata.disable_functions.split(','); var dbody = '' for (var i = 0; i < disable_functions.length; i++) { if (disable_functions[i] == '') continue; dbody += "" + disable_functions[i] + "" + lan.public.del + ""; } var con = "
" + "" + "" + "
" + "
" + "" + "" + dbody + "" + "
" + lan.soft.php_ext_name + "" + lan.public.action + "
"; con += '\ '; $(".soft-man-con").html(con); }); } //设置禁用函数 function disable_functions(version, act, fs) { var fsArr = fs.split(','); if (act == 1) { var functions = $("#disable_function_val").val(); for (var i = 0; i < fsArr.length; i++) { if (functions == fsArr[i]) { layer.msg(lan.soft.fun_msg, { icon: 5 }); return; } } fs += ',' + functions; msg = lan.public.add_success; } else { fs = ''; for (var i = 0; i < fsArr.length; i++) { if (act == fsArr[i]) continue; fs += fsArr[i] + ',' } msg = lan.public.del_success; fs = fs.substr(0, fs.length - 1); } var data = 'version=' + version + '&disable_functions=' + fs; var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/config?action=setPHPDisable', data, function(rdata) { layer.close(loadT); layer.msg(rdata.status ? msg : rdata.msg, { icon: rdata.status ? 1 : 2 }); disFun(version); }); } //性能调整 function SetFpmConfig(version, action) { if (action == 1) { $.post('/system?action=GetMemInfo', '', function(memInfo) { var limit_children = parseInt(memInfo['memTotal'] / 8); var max_children = Number($("input[name='max_children']").val()); var start_servers = Number($("input[name='start_servers']").val()); var min_spare_servers = Number($("input[name='min_spare_servers']").val()); var max_spare_servers = Number($("input[name='max_spare_servers']").val()); var pm = $("select[name='pm']").val(); if (limit_children < max_children) { layer.msg('当前服务器内存不足,最大允许[' + limit_children + ']个子进程!', { icon: 2 }); $("input[name='max_children']").focus(); return; } if (max_children < max_spare_servers) { layer.msg(lan.soft.php_fpm_err1, { icon: 2 }); return; } if (min_spare_servers > start_servers) { layer.msg(lan.soft.php_fpm_err2, { icon: 2 }); return; } if (max_spare_servers < min_spare_servers) { layer.msg(lan.soft.php_fpm_err3, { icon: 2 }); return; } if (max_children < start_servers) { layer.msg(lan.soft.php_fpm_err4, { icon: 2 }); return; } if (max_children < 1 || start_servers < 1 || min_spare_servers < 1 || max_spare_servers < 1) { layer.msg(lan.soft.php_fpm_err5, { icon: 2 }); return; } var data = 'version=' + version + '&max_children=' + max_children + '&start_servers=' + start_servers + '&min_spare_servers=' + min_spare_servers + '&max_spare_servers=' + max_spare_servers + '&pm=' + pm; var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/config?action=setFpmConfig', data, function(rdata) { layer.close(loadT); var loadT = layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }).error(function() { layer.close(loadT); layer.msg(lan.public.config_ok, { icon: 1 }); }); }); return; } $.post('/config?action=getFpmConfig', 'version=' + version, function(rdata) { var limitList = "" + "" + "" + "" + "" + "" + "" var pms = [{ 'name': 'static', 'title': lan.bt.static }, { 'name': 'dynamic', 'title': lan.bt.dynamic }]; var pmList = ''; for (var i = 0; i < pms.length; i++) { pmList += ''; } var body = "
" + "

" + lan.soft.concurrency_type + ":

" + "

" + lan.soft.php_fpm_model + ":*" + lan.soft.php_fpm_ps1 + "

" + "

max_children:*" + lan.soft.php_fpm_ps2 + "

" + "

start_servers: *" + lan.soft.php_fpm_ps3 + "

" + "

min_spare_servers: *" + lan.soft.php_fpm_ps4 + "

" + "

max_spare_servers: *" + lan.soft.php_fpm_ps5 + "

" + "
" + "
" $(".soft-man-con").html(body); $("select[name='limit']").change(function() { var type = $(this).val(); var max_children = rdata.max_children; var start_servers = rdata.start_servers; var min_spare_servers = rdata.min_spare_servers; var max_spare_servers = rdata.max_spare_servers; switch (type) { case '1': max_children = 30; start_servers = 5; min_spare_servers = 5; max_spare_servers = 20; break; case '2': max_children = 50; start_servers = 15; min_spare_servers = 15; max_spare_servers = 35; break; case '3': max_children = 100; start_servers = 20; min_spare_servers = 20; max_spare_servers = 70; break; case '4': max_children = 200; start_servers = 25; min_spare_servers = 25; max_spare_servers = 150; break; case '5': max_children = 300; start_servers = 30; min_spare_servers = 30; max_spare_servers = 180; break; case '6': max_children = 500; start_servers = 35; min_spare_servers = 35; max_spare_servers = 250; break; } $("input[name='max_children']").val(max_children); $("input[name='start_servers']").val(start_servers); $("input[name='min_spare_servers']").val(min_spare_servers); $("input[name='max_spare_servers']").val(max_spare_servers); }); }); } //phpinfo function BtPhpinfo(version) { var con = ''; $(".soft-man-con").html(con); } //获取PHPInfo function GetPHPInfo(version) { var loadT = layer.msg(lan.soft.get, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.get('/ajax?action=GetPHPInfo&version=' + version, function(rdata) { layer.close(loadT); layer.open({ type: 1, title: "PHP-" + version + "-PHPINFO", area: ['70%', '90%'], closeBtn: 2, shadeClose: true, content: rdata.replace('a:link {color: #009; text-decoration: none; background-color: #fff;}', '').replace('a:link {color: #000099; text-decoration: none; background-color: #ffffff;}', '') }); }); } //nginx function nginxSoftMain(name, version) { var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.get('/system?action=GetConcifInfo', function(rdata) { layer.close(loadT); nameA = rdata['web']; var status = name == 'nginx' ? '

' + lan.soft.nginx_status + '

' : ''; var menu = ''; if (version != undefined || version != '') { var menu = '

' + lan.soft.nginx_version + '

'; } var waf = '' if (name == 'nginx') { waf = '

' + lan.soft.waf_title + '

' } var logsPath = (name == 'nginx') ? '/www/wwwlogs/nginx_error.log' : '/www/wwwlogs/error_log'; layer.open({ type: 1, area: '640px', title: name + lan.soft.admin, closeBtn: 2, shift: 0, content: '
\
\

' + lan.soft.web_service + '

\

' + lan.soft.config_edit + '

\ ' + waf + '\ ' + menu + '\ ' + status + '\

错误日志

\
\
\
\
\
' }); service(name, nameA.status); $(".bt-w-menu p").click(function() { //var i = $(this).index(); $(this).addClass("bgw").siblings().removeClass("bgw"); }); }); } //显示指定日志 function showLogs(logPath) { var loadT = layer.msg(lan.public.the_get, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/ajax?action=GetOpeLogs', { path: logPath }, function(rdata) { layer.close(loadT); if (rdata.msg == '') rdata.msg = '当前没有日志!'; var ebody = '
'; $(".soft-man-con").html(ebody); var ob = document.getElementById('error_log'); ob.scrollTop = ob.scrollHeight; }); } //WAF防火墙 function waf() { var loadT = layer.msg(lan.public.the_get, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.get("/waf?action=GetConfig", function(rdata) { layer.close(loadT); if (rdata.status == -1) { layer.msg(lan.soft.waf_not, { icon: 5, time: 5000 }); return; } var whiteList = "" for (var i = 0; i < rdata.ipWhitelist.length; i++) { if (rdata.ipWhitelist[i] == "") continue; whiteList += "" + rdata.ipWhitelist[i] + "" + lan.public.del + ""; } var blackList = "" for (var i = 0; i < rdata.ipBlocklist.length; i++) { if (rdata.ipBlocklist[i] == "") continue; blackList += "" + rdata.ipBlocklist[i] + "" + lan.public.del + ""; } var cc = rdata.CCrate.split('/') var con = "
\
\ " + lan.soft.waf_title + "
\ \ \
\
\ \ \
\
\
\ \ \ \ \ \ \
\
\ " + lan.soft.waf_input6 + "\ " + lan.soft.waf_input7 + "(" + lan.bt.s + ")\ \
\
\
\ " + lan.soft.waf_input8 + "\ \
" + whiteList + "
\
\
\ " + lan.soft.waf_input9 + "\ \
" + blackList + "
\
\
\
" $(".soft-man-con").html(con); }); } //上传限制 function upLimit() { var loadT = layer.msg(lan.public.the_get, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.get("/waf?action=GetConfig", function(rdata) { layer.close(loadT); var black_fileExt = '' for (var i = 0; i < rdata.black_fileExt.length; i++) { black_fileExt += "" + rdata.black_fileExt[i] + "" + lan.public.del + ""; } if ($("#blacktable").html() != undefined) { $("#blacktable").html(black_fileExt); $("#black_fileExt_val").val(''); return; } layer.open({ type: 1, area: '300px', title: lan.soft.waf_up_title, closeBtn: 2, shift: 0, content: "
" + "" + "" + "
" + "
" + "" + "" + black_fileExt + "" + "
" + lan.soft.waf_up_from2 + "" + lan.public.action + "
" }); }); } //设置waf状态 function CloseWaf() { var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/waf?action=SetStatus', '', function(rdata) { layer.close(loadT) layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 }); if (rdata.status) waf(); }); } //取规则文件 function GetWafFile(name) { OnlineEditFile(0, '/www/server/panel/vhost/wafconf/' + name); } //规则编辑 function gzEdit() { layer.open({ type: 1, area: '360px', title: lan.soft.waf_edit, closeBtn: 2, shift: 0, content: "
\ \ \ \ \ \ \
" }); } //更新WAF规则 function updateWaf() { var loadT = layer.msg(lan.soft.waf_update, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/waf?action=updateWaf', '', function(rdata) { layer.close(loadT) layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 }); }); } //设置WAF配置值 function SetWafConfig(name, value) { if (name == 'CCrate') { var CCrate_1 = $("#CCrate_1").val(); var CCrate_2 = $("#CCrate_2").val(); if (CCrate_1 < 1 || CCrate_1 > 3000 || CCrate_2 < 1 || CCrate_2 > 1800) { layer.msg(lan.soft.waf_cc_err, { icon: 5 }); return; } value = CCrate_1 + '/' + CCrate_2; } var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/waf?action=SetConfigString', 'name=' + name + '&value=' + value, function(rdata) { layer.close(loadT) layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 }); if (rdata.status) waf(); }); } //删除WAF指定值 function deleteWafKey(name, value) { var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/waf?action=SetConfigList&act=del', 'name=' + name + '&value=' + value, function(rdata) { layer.close(loadT) layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 }); if (rdata.status) waf(); if (name == 'black_fileExt') upLimit(); }); } //删除WAF指定值 function addWafKey(name) { var value = $('#' + name + '_val').val(); var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/waf?action=SetConfigList&act=add', 'name=' + name + '&value=' + value, function(rdata) { layer.close(loadT) layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 }); if (rdata.status) waf(); if (name == 'black_fileExt') upLimit(); }); } //查看Nginx负载状态 function GetNginxStatus() { $.post('/ajax?action=GetNginxStatus', '', function(rdata) { var con = "
\ \ \ \ \ \ \ \
" + lan.bt.nginx_active + "" + rdata.active + "
" + lan.bt.nginx_accepts + "" + rdata.accepts + "
" + lan.bt.nginx_handled + "" + rdata.handled + "
" + lan.bt.nginx_requests + "" + rdata.requests + "
" + lan.bt.nginx_reading + "" + rdata.Reading + "
" + lan.bt.nginx_writing + "" + rdata.Writing + "
" + lan.bt.nginx_waiting + "" + rdata.Waiting + "
"; $(".soft-man-con").html(con); }) } //查看PHP负载状态 function GetPHPStatus(version) { $.post('/ajax?action=GetPHPStatus', 'version=' + version, function(rdata) { var con = "
\ \ \ \ \ \ \ \ \ \ \ \ \ \
" + lan.bt.php_pool + "" + rdata.pool + "
" + lan.bt.php_manager + "" + ((rdata['process manager'] == 'dynamic') ? lan.bt.dynamic : lan.bt.static) + "
" + lan.bt.php_start + "" + rdata['start time'] + "
" + lan.bt.php_accepted + "" + rdata['accepted conn'] + "
" + lan.bt.php_queue + "" + rdata['listen queue'] + "
" + lan.bt.php_max_queue + "" + rdata['max listen queue'] + "
" + lan.bt.php_len_queue + "" + rdata['listen queue len'] + "
" + lan.bt.php_idle + "" + rdata['idle processes'] + "
" + lan.bt.php_active + "" + rdata['active processes'] + "
" + lan.bt.php_total + "" + rdata['total processes'] + "
" + lan.bt.php_max_active + "" + rdata['max active processes'] + "
" + lan.bt.php_max_children + "" + rdata['max children reached'] + "
" + lan.bt.php_slow + "" + rdata['slow requests'] + "
"; $(".soft-man-con").html(con); $(".GetPHPStatus td,.GetPHPStatus th").css("padding", "7px"); }) } //软件管理窗口 function SoftMan(name, version) { switch (name) { case 'nginx': nginxSoftMain(name, version); return; break; case 'apache': nginxSoftMain(name, version); return; break; case 'mysql': name = 'mysqld'; break; } var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.get('/system?action=GetConcifInfo', function(rdata) { layer.close(loadT); var nameA = rdata[name.replace('mysqld', 'mysql')]; var menu = '

' + lan.soft.config_edit + '

' + lan.soft.nginx_version + '

'; if (name == "phpmyadmin") { menu = '

' + lan.soft.php_version + '

' + lan.soft.safe + '

'; } if (version == undefined || version == '') { var menu = '

' + lan.soft.config_edit + '

'; } if (name == 'mysqld') { menu += '

' + lan.soft.save_path + '

' + lan.site.port + '

' + lan.soft.status + '

' + lan.soft.php_main7 + '

' + lan.soft.log + '

慢日志

'; } else if (name == 'memcached') { menu += '

负载状态

性能调整

'; } else if (name == 'redis') { menu += '

负载状态

'; } else if (name == 'tomcat') { menu += '

运行日志

'; } layer.open({ type: 1, area: '640px', title: name + lan.soft.admin, closeBtn: 2, shift: 0, content: '
\
\

' + lan.soft.service + '

' + menu + '
\
\
\
\
' }); service(name, nameA.status); $(".bt-w-menu p").click(function() { //var i = $(this).index(); $(this).addClass("bgw").siblings().removeClass("bgw"); }); }); } //redis负载状态 function RedisStatus() { var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 }); $.get('/ajax?action=GetRedisStatus', function(rdata) { layer.close(loadT); hit = (parseInt(rdata.keyspace_hits) / (parseInt(rdata.keyspace_hits) + parseInt(rdata.keyspace_misses)) * 100).toFixed(2); var Con = '
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
字段当前值说明
uptime_in_days' + rdata.uptime_in_days + '已运行天数
tcp_port' + rdata.tcp_port + '当前监听端口
connected_clients' + rdata.connected_clients + '连接的客户端数量
used_memory_rss' + ToSize(rdata.used_memory_rss) + 'Redis当前占用的系统内存总量
used_memory' + ToSize(rdata.used_memory) + 'Redis当前已分配的内存总量
used_memory_peak' + ToSize(rdata.used_memory_peak) + 'Redis历史分配内存的峰值
mem_fragmentation_ratio' + rdata.mem_fragmentation_ratio + '%内存碎片比率
total_connections_received' + rdata.total_connections_received + '运行以来连接过的客户端的总数量
total_commands_processed' + rdata.total_commands_processed + '运行以来执行过的命令的总数量
instantaneous_ops_per_sec' + rdata.instantaneous_ops_per_sec + '服务器每秒钟执行的命令数量
keyspace_hits' + rdata.keyspace_hits + '查找数据库键成功的次数
keyspace_misses' + rdata.keyspace_misses + '查找数据库键失败的次数
hit' + hit + '%查找数据库键命中率
latest_fork_usec' + rdata.latest_fork_usec + '最近一次 fork() 操作耗费的微秒数
' $(".soft-man-con").html(Con); }); } //memcached负载状态 function MemcachedStatus() { var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 }); $.get('/ajax?action=GetMemcachedStatus', function(rdata) { layer.close(loadT); var Con = '
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
字段当前值说明
BindIP' + rdata.bind + '监听IP
PORT' + rdata.port + '监听端口
CACHESIZE' + rdata.cachesize + ' MB最大缓存容量
MAXCONN' + rdata.maxconn + '最大连接数限制
curr_connections' + rdata.curr_connections + '当前打开的连接数
cmd_get' + rdata.cmd_get + 'GET请求数
get_hits' + rdata.get_hits + 'GET命中次数
get_misses' + rdata.get_misses + 'GET失败次数
hit' + rdata.hit.toFixed(2) + '%GET命中率
curr_items' + rdata.curr_items + '当前被缓存的数据行数
evictions' + rdata.evictions + '因内存不足而被清理的缓存行数
bytes' + ToSize(rdata.bytes) + '当前已使用内存
bytes_read' + ToSize(rdata.bytes_read) + '请求总大小
bytes_written' + ToSize(rdata.bytes_written) + '发送总大小
' $(".soft-man-con").html(Con); }); } //memcached性能调整 function MemcachedCache() { var loadT = layer.msg('正在获取...', { icon: 16, time: 0, shade: 0.3 }); $.get('/ajax?action=GetMemcachedStatus', function(rdata) { layer.close(loadT); var memCon = '
\

BindIP监听IP,请勿随意修改

\

PORT监听端口,一般无需修改

\

CACHESIZEMB,缓存大小,建议不要大于512M

\

MAXCONN最大连接数,建议不要大于40960

\
\
' $(".soft-man-con").html(memCon); }); } //memcached提交配置 function SetMemcachedConf() { var data = { ip: $("input[name='membind']").val(), port: $("input[name='memport']").val(), cachesize: $("input[name='memcachesize']").val(), maxconn: $("input[name='memmaxconn']").val() } if (data.ip.split('.').length < 4) { layer.msg('IP地址格式不正确!', { icon: 2 }); return; } if (data.port < 1 || data.port > 65535) { layer.msg('端口范围不正确!', { icon: 2 }); return; } if (data.cachesize < 8) { layer.msg('缓存值过小', { icon: 2 }); return; } if (data.maxconn < 4) { layer.msg('最大连接数过小', { icon: 2 }); return; } var loadT = layer.msg('正在保存...', { icon: 16, time: 0, shade: 0.3 }); $.post('/ajax?action=SetMemcachedCache', data, function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }); } //数据库存储信置 function changeMySQLDataPath(act) { if (act != undefined) { layer.confirm(lan.soft.mysql_to_msg, { closeBtn: 2, icon: 3 }, function() { var datadir = $("#datadir").val(); var data = 'datadir=' + datadir; var loadT = layer.msg(lan.soft.mysql_to_msg1, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/database?action=SetDataDir', data, function(rdata) { layer.close(loadT) layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 }); }); }); return; } $.post('/database?action=GetMySQLInfo', '', function(rdata) { var LimitCon = '

\ \ \

'; $(".soft-man-con").html(LimitCon); }); } //MySQL-Slow日志 function mysqlSlowLog() { var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/database?action=GetSlowLogs', {}, function(logs) { layer.close(loadT); if (logs.status !== true) { logs.msg = ''; } if (logs.msg == '') logs.msg = '当前没有慢日志.'; var phpCon = ''; $(".soft-man-con").html(phpCon); var ob = document.getElementById('error_log'); ob.scrollTop = ob.scrollHeight; }); } //数据库日志 function mysqlLog(act) { //获取二进制日志相关信息 $.post('/database?action=BinLog', "status=1", function(rdata) { var limitCon = '

\ ' + lan.soft.mysql_log_bin + ' ' + ToSize(rdata.msg) + '\ \

' + lan.soft.mysql_log_err + '

\ \

' $(".soft-man-con").html(limitCon); //获取错误日志 $.post('/database?action=GetErrorLog', "", function(error_body) { if (error_body.status === false) { layer.msg(error_body.msg, { icon: 5 }); error_body = lan.soft.mysql_log_ps1; } if (error_body == "") error_body = lan.soft.mysql_log_ps1; $("#error_log").text(error_body); var ob = document.getElementById('error_log'); ob.scrollTop = ob.scrollHeight; }); }); } //取数据库运行状态 function mysqlRunStatus() { $.post('/database?action=GetRunStatus', "", function(rdata) { var cache_size = ((parseInt(rdata.Qcache_hits) / (parseInt(rdata.Qcache_hits) + parseInt(rdata.Qcache_inserts))) * 100).toFixed(2) + '%'; if (cache_size == 'NaN%') cache_size = 'OFF'; var Con = '
\ \ \ \ \ \ \
' + lan.soft.mysql_status_title1 + '' + getLocalTime(rdata.Run) + '' + lan.soft.mysql_status_title5 + '' + parseInt(rdata.Questions / rdata.Uptime) + '
' + lan.soft.mysql_status_title2 + '' + rdata.Connections + '' + lan.soft.mysql_status_title6 + '' + parseInt((parseInt(rdata.Com_commit) + parseInt(rdata.Com_rollback)) / rdata.Uptime) + '
' + lan.soft.mysql_status_title3 + '' + ToSize(rdata.Bytes_sent) + '' + lan.soft.mysql_status_title7 + '' + rdata.File + '
' + lan.soft.mysql_status_title4 + '' + ToSize(rdata.Bytes_received) + '' + lan.soft.mysql_status_title8 + '' + rdata.Position + '
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
' + lan.soft.mysql_status_title9 + '' + rdata.Threads_running + '/' + rdata.Max_used_connections + '' + lan.soft.mysql_status_ps1 + '
' + lan.soft.mysql_status_title10 + '' + ((1 - rdata.Threads_created / rdata.Connections) * 100).toFixed(2) + '%' + lan.soft.mysql_status_ps2 + '
' + lan.soft.mysql_status_title11 + '' + ((1 - rdata.Key_reads / rdata.Key_read_requests) * 100).toFixed(2) + '%' + lan.soft.mysql_status_ps3 + '
' + lan.soft.mysql_status_title12 + '' + ((1 - rdata.Innodb_buffer_pool_reads / rdata.Innodb_buffer_pool_read_requests) * 100).toFixed(2) + '%' + lan.soft.mysql_status_ps4 + '
' + lan.soft.mysql_status_title13 + '' + cache_size + '' + lan.soft.mysql_status_ps5 + '
' + lan.soft.mysql_status_title14 + '' + ((rdata.Created_tmp_disk_tables / rdata.Created_tmp_tables) * 100).toFixed(2) + '%' + lan.soft.mysql_status_ps6 + '
' + lan.soft.mysql_status_title15 + '' + rdata.Open_tables + '' + lan.soft.mysql_status_ps7 + '
' + lan.soft.mysql_status_title16 + '' + rdata.Select_full_join + '' + lan.soft.mysql_status_ps8 + '
' + lan.soft.mysql_status_title17 + '' + rdata.Select_range_check + '' + lan.soft.mysql_status_ps9 + '
' + lan.soft.mysql_status_title18 + '' + rdata.Sort_merge_passes + '' + lan.soft.mysql_status_ps10 + '
' + lan.soft.mysql_status_title19 + '' + rdata.Table_locks_waited + '' + lan.soft.mysql_status_ps11 + '
' $(".soft-man-con").html(Con); }); } //数据库配置状态 function mysqlStatus() { //获取MySQL配置 $.post('/database?action=GetDbStatus', "", function(rdata) { var key_buffer_size = ToSizeM(rdata.mem.key_buffer_size) var query_cache_size = ToSizeM(rdata.mem.query_cache_size) var tmp_table_size = ToSizeM(rdata.mem.tmp_table_size) var innodb_buffer_pool_size = ToSizeM(rdata.mem.innodb_buffer_pool_size) var innodb_additional_mem_pool_size = ToSizeM(rdata.mem.innodb_additional_mem_pool_size) var innodb_log_buffer_size = ToSizeM(rdata.mem.innodb_log_buffer_size) var sort_buffer_size = ToSizeM(rdata.mem.sort_buffer_size) var read_buffer_size = ToSizeM(rdata.mem.read_buffer_size) var read_rnd_buffer_size = ToSizeM(rdata.mem.read_rnd_buffer_size) var join_buffer_size = ToSizeM(rdata.mem.join_buffer_size) var thread_stack = ToSizeM(rdata.mem.thread_stack) var binlog_cache_size = ToSizeM(rdata.mem.binlog_cache_size) var a = key_buffer_size + query_cache_size + tmp_table_size + innodb_buffer_pool_size + innodb_additional_mem_pool_size + innodb_log_buffer_size var b = sort_buffer_size + read_buffer_size + read_rnd_buffer_size + join_buffer_size + thread_stack + binlog_cache_size var memSize = a + rdata.mem.max_connections * b var memCon = '
\
' + lan.soft.mysql_set_msg + '\ \ ' + lan.soft.mysql_set_maxmem + ': MB\
\

key_buffer_sizeMB, ' + lan.soft.mysql_set_key_buffer_size + '

\

query_cache_sizeMB, ' + lan.soft.mysql_set_query_cache_size + '

\

tmp_table_sizeMB, ' + lan.soft.mysql_set_tmp_table_size + '

\

innodb_buffer_pool_sizeMB, ' + lan.soft.mysql_set_innodb_buffer_pool_size + '

\

innodb_log_buffer_sizeMB, ' + lan.soft.mysql_set_innodb_log_buffer_size + '

\

innodb_additional_mem_pool_sizeMB

\

sort_buffer_sizeKB * ' + lan.soft.mysql_set_conn + ', ' + lan.soft.mysql_set_sort_buffer_size + '

\

read_buffer_sizeKB * ' + lan.soft.mysql_set_conn + ', ' + lan.soft.mysql_set_read_buffer_size + '

\

read_rnd_buffer_sizeKB * ' + lan.soft.mysql_set_conn + ', ' + lan.soft.mysql_set_read_rnd_buffer_size + '

\

join_buffer_sizeKB * ' + lan.soft.mysql_set_conn + ', ' + lan.soft.mysql_set_join_buffer_size + '

\

thread_stackKB * ' + lan.soft.mysql_set_conn + ', ' + lan.soft.mysql_set_thread_stack + '

\

binlog_cache_sizeKB * ' + lan.soft.mysql_set_conn + ', ' + lan.soft.mysql_set_binlog_cache_size + '

\

thread_cache_size ' + lan.soft.mysql_set_thread_cache_size + '

\

table_open_cache ' + lan.soft.mysql_set_table_open_cache + '

\

max_connections ' + lan.soft.mysql_set_max_connections + '

\
\
' $(".soft-man-con").html(memCon); $(".conf_p input[name*='size'],.conf_p input[name='max_connections'],.conf_p input[name='thread_stack']").change(function() { ComMySqlMem(); }); $(".conf_p select[name='mysql_set']").change(function() { MySQLMemOpt($(this).val()); ComMySqlMem(); }); }); } //重启MySQL function ReBootMySqld() { var loadT = layer.msg(lan.get('service_the', [lan.bt.restart, 'MySQLd']), { icon: 16, time: 0, shade: 0.3 }); $.post('/system?action=ServiceAdmin', 'name=mysqld&type=restart', function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }); } //计算MySQL内存开销 function ComMySqlMem() { var key_buffer_size = parseInt($("input[name='key_buffer_size']").val()); var query_cache_size = parseInt($("input[name='query_cache_size']").val()); var tmp_table_size = parseInt($("input[name='tmp_table_size']").val()); var innodb_buffer_pool_size = parseInt($("input[name='innodb_buffer_pool_size']").val()); var innodb_additional_mem_pool_size = parseInt($("input[name='innodb_additional_mem_pool_size']").val()); var innodb_log_buffer_size = parseInt($("input[name='innodb_log_buffer_size']").val()); var sort_buffer_size = $("input[name='sort_buffer_size']").val() / 1024; var read_buffer_size = $("input[name='read_buffer_size']").val() / 1024; var read_rnd_buffer_size = $("input[name='read_rnd_buffer_size']").val() / 1024; var join_buffer_size = $("input[name='join_buffer_size']").val() / 1024; var thread_stack = $("input[name='thread_stack']").val() / 1024; var binlog_cache_size = $("input[name='binlog_cache_size']").val() / 1024; var max_connections = $("input[name='max_connections']").val(); var a = key_buffer_size + query_cache_size + tmp_table_size + innodb_buffer_pool_size + innodb_additional_mem_pool_size + innodb_log_buffer_size var b = sort_buffer_size + read_buffer_size + read_rnd_buffer_size + join_buffer_size + thread_stack + binlog_cache_size var memSize = a + max_connections * b $("input[name='memSize']").val(memSize.toFixed(2)); } //MySQL内存优化方案 function MySQLMemOpt(opt) { var query_size = parseInt($("input[name='query_cache_size']").val()); switch (opt) { case '1': $("input[name='key_buffer_size']").val(128); if (query_size) $("input[name='query_cache_size']").val(64); $("input[name='tmp_table_size']").val(64); $("input[name='innodb_buffer_pool_size']").val(256); $("input[name='sort_buffer_size']").val(768); $("input[name='read_buffer_size']").val(768); $("input[name='read_rnd_buffer_size']").val(512); $("input[name='join_buffer_size']").val(1024); $("input[name='thread_stack']").val(256); $("input[name='binlog_cache_size']").val(64); $("input[name='thread_cache_size']").val(64); $("input[name='table_open_cache']").val(128); $("input[name='max_connections']").val(100); break; case '2': $("input[name='key_buffer_size']").val(256); if (query_size) $("input[name='query_cache_size']").val(128); $("input[name='tmp_table_size']").val(384); $("input[name='innodb_buffer_pool_size']").val(384); $("input[name='sort_buffer_size']").val(768); $("input[name='read_buffer_size']").val(768); $("input[name='read_rnd_buffer_size']").val(512); $("input[name='join_buffer_size']").val(2048); $("input[name='thread_stack']").val(256); $("input[name='binlog_cache_size']").val(64); $("input[name='thread_cache_size']").val(96); $("input[name='table_open_cache']").val(192); $("input[name='max_connections']").val(200); break; case '3': $("input[name='key_buffer_size']").val(384); if (query_size) $("input[name='query_cache_size']").val(192); $("input[name='tmp_table_size']").val(512); $("input[name='innodb_buffer_pool_size']").val(512); $("input[name='sort_buffer_size']").val(1024); $("input[name='read_buffer_size']").val(1024); $("input[name='read_rnd_buffer_size']").val(768); $("input[name='join_buffer_size']").val(2048); $("input[name='thread_stack']").val(256); $("input[name='binlog_cache_size']").val(128); $("input[name='thread_cache_size']").val(128); $("input[name='table_open_cache']").val(384); $("input[name='max_connections']").val(300); break; case '4': $("input[name='key_buffer_size']").val(512); if (query_size) $("input[name='query_cache_size']").val(256); $("input[name='tmp_table_size']").val(1024); $("input[name='innodb_buffer_pool_size']").val(1024); $("input[name='sort_buffer_size']").val(2048); $("input[name='read_buffer_size']").val(2048); $("input[name='read_rnd_buffer_size']").val(1024); $("input[name='join_buffer_size']").val(4096); $("input[name='thread_stack']").val(384); $("input[name='binlog_cache_size']").val(192); $("input[name='thread_cache_size']").val(192); $("input[name='table_open_cache']").val(1024); $("input[name='max_connections']").val(400); break; case '5': $("input[name='key_buffer_size']").val(1024); if (query_size) $("input[name='query_cache_size']").val(384); $("input[name='tmp_table_size']").val(2048); $("input[name='innodb_buffer_pool_size']").val(4096); $("input[name='sort_buffer_size']").val(4096); $("input[name='read_buffer_size']").val(4096); $("input[name='read_rnd_buffer_size']").val(2048); $("input[name='join_buffer_size']").val(8192); $("input[name='thread_stack']").val(512); $("input[name='binlog_cache_size']").val(256); $("input[name='thread_cache_size']").val(256); $("input[name='table_open_cache']").val(2048); $("input[name='max_connections']").val(500); break; } } //设置MySQL配置参数 function SetMySQLConf() { $.post('/system?action=GetMemInfo', '', function(memInfo) { //var memSize = memInfo['memTotal']; //var setSize = parseInt($("input[name='memSize']").val()); //if(memSize < setSize){ // var msg = lan.soft.mysql_set_err.replace('{1}',memSize).replace('{2}',setSize); // layer.msg(msg,{icon:2,time:5000}); // return; //} var query_cache_size = parseInt($("input[name='query_cache_size']").val()); var query_cache_type = 0; if (query_cache_size > 0) { query_cache_type = 1; } var data = { key_buffer_size: parseInt($("input[name='key_buffer_size']").val()), query_cache_size: query_cache_size, query_cache_type: query_cache_type, tmp_table_size: parseInt($("input[name='tmp_table_size']").val()), max_heap_table_size: parseInt($("input[name='tmp_table_size']").val()), innodb_buffer_pool_size: parseInt($("input[name='innodb_buffer_pool_size']").val()), innodb_log_buffer_size: parseInt($("input[name='innodb_log_buffer_size']").val()), sort_buffer_size: parseInt($("input[name='sort_buffer_size']").val()), read_buffer_size: parseInt($("input[name='read_buffer_size']").val()), read_rnd_buffer_size: parseInt($("input[name='read_rnd_buffer_size']").val()), join_buffer_size: parseInt($("input[name='join_buffer_size']").val()), thread_stack: parseInt($("input[name='thread_stack']").val()), binlog_cache_size: parseInt($("input[name='binlog_cache_size']").val()), thread_cache_size: parseInt($("input[name='thread_cache_size']").val()), table_open_cache: parseInt($("input[name='table_open_cache']").val()), max_connections: parseInt($("input[name='max_connections']").val()) }; $.post('/database?action=SetDbConf', data, function(rdata) { layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }); }) } //转换单们到MB function ToSizeM(byteLen) { var a = parseInt(byteLen) / 1024 / 1024; return a || 0; } //设置二进制日志 function SetBinLog() { var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: 0.3 }); $.post('/database?action=BinLog', "", function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 }); mysqlLog(); }); } //清空日志 function closeMySqlLog() { var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: 0.3 }); $.post('/database?action=GetErrorLog', "close=1", function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 }); mysqlLog(); }); } //数据库端口 function changeMySQLPort(act) { if (act != undefined) { layer.confirm(lan.soft.mysql_port_title, { closeBtn: 2, icon: 3 }, function() { var port = $("#dataport").val(); var data = 'port=' + port; var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/database?action=SetMySQLPort', data, function(rdata) { layer.close(loadT) layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 }); }); }); return; } $.post('/database?action=GetMySQLInfo', '', function(rdata) { var LimitCon = '

\ \ \

'; $(".soft-man-con").html(LimitCon); }); } //软件切换版本 function softChangeVer(name, version) { if (name == "mysqld") name = "mysql"; var veropt = version.split("|"); var SelectVersion = ''; for (var i = 0; i < veropt.length; i++) { SelectVersion += ''; } var body = "
" + lan.soft.select_version + "
'; if (name == 'mysql') { body += "" } $(".soft-man-con").html(body); $(".btn-success").click(function() { var ver = $("#selectVer").val(); oneInstall(name, ver.split(" ")[1]); }); selectChange(); } //phpmyadmin切换php版本 function phpVer(name, version) { $.post('/site?action=GetPHPVersion', function(rdata) { var body = "
" + lan.soft.php_version + "
'; $(".soft-man-con").html(body); }) } function phpVerChange(type, msg) { var data = type + '=' + $("#" + msg).val(); var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/ajax?action=setPHPMyAdmin', data, function(rdata) { layer.closeAll(); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); if (rdata.status) { setTimeout(function() { window.location.reload(); }, 3000); } }) } //phpmyadmin安全设置 function safeConf(name, port, auth) { var con = '
\ ' + lan.soft.pma_port + '\ \ \
\
\ ' + lan.soft.pma_pass + '\ \ \ \
\
\

' + lan.soft.pma_user + '

\

' + lan.soft.pma_pass1 + '

\

' + lan.soft.pma_pass2 + '

\

\
\ '; $(".soft-man-con").html(con); if (auth) { $(".user_pw").show(); } } //修改phpmyadmin端口 function phpmyadminport() { var pmport = $("#pmport").val(); if (pmport < 80 || pmport > 65535) { layer.msg(lan.firewall.port_err, { icon: 2 }); return; } var data = 'port=' + pmport; var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/ajax?action=setPHPMyAdmin', data, function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }); } //phpmyadmin二级密码 function phpmyadminSafe() { var stat = $("#phpmyadminsafe").prop("checked"); if (stat) { $(".user_pw").hide(); phpmyadmin('close'); } else { $(".user_pw").show(); } } //设置phpmyadmin二级密码 function phpmyadmin(msg) { type = 'password'; if (msg == 'close') { password_1 = msg; username = msg; layer.confirm(lan.soft.pma_pass_close, { closeBtn: 2, icon: 3 }, function() { var data = type + '=' + msg + '&siteName=phpmyadmin'; var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/ajax?action=setPHPMyAdmin', data, function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }); }); return; } else { username = $("#username_get").val() password_1 = $("#password_get_1").val() password_2 = $("#password_get_2").val() if (username.length < 1 || password_1.length < 1) { layer.msg(lan.soft.pma_pass_empty, { icon: 2 }); return; } if (password_1 != password_2) { layer.msg(lan.bt.pass_err_re, { icon: 2 }); return; } } msg = password_1 + '&username=' + username + '&siteName=phpmyadmin'; var data = type + '=' + msg; var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/ajax?action=setPHPMyAdmin', data, function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }); } //首页软件列表 function indexsoft() { var loadT = layer.msg(lan.soft.get_list, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/plugin?action=getPluginList', 'display=1', function(rdata) { layer.close(loadT); var con = ''; for (var i = 0; i < rdata['data'].length - 1; i++) { var len = rdata.data[i].versions.length; var version_info = ''; for (var j = 0; j < len; j++) { if (rdata.data[i].versions[j].status) continue; version_info += rdata.data[i].versions[j].version + '|'; } if (version_info != '') { version_info = version_info.substring(0, version_info.length - 1); } if (rdata.data[i].display) { var isDisplay = false; if (rdata.data[i].name != 'php') { for (var n = 0; n < len; n++) { if (rdata.data[i].versions[n].status == true) { isDisplay = true; var version = rdata.data[i].versions[n].version; if (rdata.data[i].versions[n].run == true) { state = '' } else { state = '' } } } if (isDisplay) { var clickName = 'SoftMan'; if (rdata.data[i].tip == 'lib') { clickName = 'PluginMan'; version_info = rdata.data[i].title; } con += '
\ \
\
\
' + rdata.data[i].title + ' ' + version + state + '
\
\
' } } else { for (var n = 0; n < len; n++) { if (rdata.data[i].versions[n].status == true) { var version = rdata.data[i].versions[n].version; if (rdata.data[i].versions[n].run == true) { state = '' } else { state = '' } } if (rdata.data[i].versions[n].display == true) { con += '
\ \
\
\
' + rdata.data[i].title + ' ' + rdata.data[i].versions[n].version + state + '
\
\
' } } } } } $("#indexsoft").html(con); //软件位置移动 var softboxlen = $("#indexsoft > div").length; var softboxsum = 12; var softboxcon = ''; var softboxn = softboxlen; if (softboxlen <= softboxsum) { for (var i = 0; i < softboxsum - softboxlen; i++) { softboxn += 1000; softboxcon += '
' } $("#indexsoft").append(softboxcon); } $("#indexsoft").dragsort({ dragSelector: ".spanmove", dragBetween: true, dragEnd: saveOrder, placeHolderTemplate: "
" }); function saveOrder() { var data = $("#indexsoft > div").map(function() { return $(this).attr("data-id"); }).get(); var ssort = data.join("|"); $("input[name=list1SortOrder]").val(ssort); $.post("/plugin?action=savePluginSort", 'ssort=' + ssort, function(rdata) {}); }; }); } //插件设置菜单 function PluginMan(name, title) { loadT = layer.msg(lan.soft.menu_temp, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.get('/plugin?action=getConfigHtml&name=' + name, function(rhtml) { layer.close(loadT); if (rhtml.status === false) { if (name == "phpguard") { layer.msg(lan.soft.menu_phpsafe, { icon: 1 }) } else { layer.msg(rhtml.msg, { icon: 2 }); } return; } layer.open({ type: 1, shift: 5, offset: '20%', closeBtn: 2, area: '700px', title: '' + title, content: rhtml }); rcode = rhtml.split('', ''); setTimeout(function() { if (!!(window.attachEvent && !window.opera)) { execScript(rcode); } else { window.eval(rcode); } }, 200) }); } //设置插件 function SetPluginConfig(name, param, def) { if (def == undefined) def = 'SetConfig'; loadT = layer.msg(lan.config.config_save, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/plugin?action=a&name=' + name + '&s=' + def, param, function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }); } //取软件列表 function GetSList(isdisplay) { if (isdisplay !== true) { var loadT = layer.msg(lan.soft.get_list, { icon: 16, time: 0, shade: [0.3, '#000'] }) } if (!isdisplay || isdisplay === true) isdisplay = getCookie('p' + getCookie('softType')); if (isdisplay == true || isdisplay == 'true') isdisplay = 1; var search = $("#SearchValue").val(); if (search != '') { search = '&search=' + search; } var type = ''; var istype = getCookie('softType'); if (istype == 'undefined' || istype == 'null' || !istype) { istype = '0'; } type = '&type=' + istype; var page = ''; if (isdisplay) { page = '&p=' + isdisplay; setCookie('p' + getCookie('softType'), isdisplay); } var condition = (search + type + page).slice(1); $.post('/plugins/list?' + condition, '', function(rdata) { // console.log(rdata); layer.close(loadT); var tBody = ''; var sBody = ''; var pBody = ''; for (var i = 0; i < rdata.type.length; i++) { var c = ''; if (istype == rdata.type[i].type) { c = 'class="on"'; } tBody += '' + rdata.type[i].title + ''; } $(".softtype").html(tBody); $("#softPage").html(rdata.page); $("#softPage .Pcount").css({ "position": "absolute", "left": "0" }) $(".task").text(rdata.data[rdata.length - 1]); for (var i = 0; i < rdata.data.length; i++) { var len = rdata.data[i].versions.length; var version_info = ''; var version = ''; var softPath = ''; var titleClick = ''; var state = ''; var indexshow = ''; var checked = ''; checked = rdata.data[i].display ? 'checked' : ''; for (var j = 0; j < len; j++) { if (rdata.data[i].versions[j].status) continue; version_info += rdata.data[i].versions[j].version + '|'; // console.log(version_info,rdata.data[i].versions[j].status); } if (version_info != '') { version_info = version_info.substring(0, version_info.length - 1); } var handle = '' + lan.soft.install + ''; var isSetup = false; if (rdata.data[i].name != 'php') { for (var n = 0; n < len; n++) { if (rdata.data[i].versions[n].status == true) { isSetup = true; if (rdata.data[i].tip == 'lib') { var mupdate = (rdata.data[i].versions[n].no == rdata.data[i].versions[n].version) ? '' : '更新 | '; handle = mupdate + '' + lan.soft.setup + ' | ' + lan.soft.uninstall + ''; titleClick = 'onclick="PluginMan(\'' + rdata.data[i].name + '\',\'' + rdata.data[i].title + '\')" style="cursor:pointer"'; } else { var mupdate = (rdata.data[i].versions[n].no == rdata.data[i].update[n]) ? '' : '更新 | '; if (rdata.data[i].versions[n].no == '') mupdate = ''; handle = mupdate + '' + lan.soft.setup + ' | ' + lan.soft.uninstall + ''; titleClick = 'onclick="SoftMan(\'' + rdata.data[i].name + '\',\'' + version_info + '\')" style="cursor:pointer"'; } version = rdata.data[i].versions[n].version; softPath = ''; indexshow = '
'; if (rdata.data[i].versions[n].run == true) { state = '' } else { state = '' } } var isTask = rdata.data[i].versions[n].task; if (isTask == '-1') { handle = '' + lan.soft.the_install + '' } else if (isTask == '0') { handle = '' + lan.soft.sleep_install + '' } } sBody += '' + '' + rdata.data[i].title + ' ' + version + '' + '' + rdata.data[i].ps + '' + '' + softPath + '' + '' + state + '' + '' + indexshow + '' + '' + handle + '' + '' } else { var pnum = 0; for (var n = 0; n < len; n++) { if (rdata.data[i].versions[n].status == true) { checked = rdata.data[i].versions[n]['display'] ? "checked" : ""; var mupdate = (rdata.data[i].versions[n].no == rdata.data[i].update[n]) ? '' : '更新 | '; handle = mupdate + '' + lan.soft.setup + ' | ' + lan.soft.uninstall + ''; softPath = ''; titleClick = 'onclick="phpSoftMain(\'' + rdata.data[i].versions[n].version + '\',' + n + ')" style="cursor:pointer"'; indexshow = '
'; if (rdata.data[i].versions[n].run == true) { state = '' } else { state = '' } } else { handle = '' + lan.soft.install + ''; softPath = ''; checked = ''; indexshow = ''; titleClick = ''; state = ''; } var pps = rdata.data[i].ps; if (rdata.data[i].apache == '2.2' && rdata.data[i].versions[n].fpm == true) { pps += ", " + lan.soft.apache22 + ""; } if (rdata.data[i].apache == '2.2' && rdata.data[i].versions[n].fpm == false) pnum++; if (rdata.data[i].apache != '2.2' && rdata.data[i].versions[n].fpm == false) { pps += ", " + lan.soft.apache24 + ""; } var isTask = rdata.data[i].versions[n].task; if (isTask == '-1') { if (rdata.data[i].apache == '2.2') pnum++; handle = '' + lan.soft.the_install + '' } else if (isTask == '0') { if (rdata.data[i].apache == '2.2') pnum++; handle = '' + lan.soft.sleep_install + '' } pBody += '' + '' + rdata.data[i].title + '-' + rdata.data[i].versions[n].version + '' //+''+rdata.data[i].versions[n].no+'' //+''+rdata.data[i].type+'' + '' + pps + '' + '' + softPath + '' + '' + state + '' + '' + indexshow + '' + '' + handle + '' + '' } if (pnum > 0) { setCookie('apacheVersion', '2.2'); setCookie('phpVersion', 1); } else { setCookie('apacheVersion', ''); setCookie('phpVersion', 0); } } } sBody += pBody; $("#softList").html(sBody); $(".menu-sub span").click(function() { setCookie('softType', $(this).attr('typeid')); $(this).addClass("on").siblings().removeClass("on"); GetSList(); }) }) } //刷新状态 function FPStatus() { $.get("/auth?action=flush_pay_status", function(res) { layer.msg(res.msg, { icon: res.status ? "1" : "2" }) }) } //更新 function SoftUpdate(name, version, update) { var msg = "
  • 建议您在服务器负载闲时进行软件更新.
  • "; if (name == 'mysql') msg = ""; SafeMessage('更新[' + name + ']', '更新过程可能会导致服务中断,您真的现在就将[' + name + ']更新到[' + update + ']吗?', function() { var data = "name=" + name + "&version=" + version + "&type=0&upgrade=" + update; var loadT = layer.msg('正在更新[' + name + '-' + version + '],请稍候...', { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/plugin?action=install', data, function(rdata) { if (rdata.status) { GetTaskCount(); layer.msg('已添加到任务列表,请稍候...', { icon: 1 }); } else { layer.msg('更新失败!', { icon: 2 }); } layer.close(loadT); }); }, msg); } //独立安装 function oneInstall(name, version) { var isError = false if (name == 'pure') name += '-' + version.toLowerCase(); if (name == 'apache' || name == 'nginx') { $.ajax({ url: '/ajax?action=GetInstalled', type: 'get', async: false, success: function(rdata) { if (rdata.webserver != name && rdata.webserver != false) { layer.msg(lan.soft.err_install2, { icon: 2 }) isError = true; return; } } }); } if (name == 'php') { if (getCookie('apacheVersion') == '2.2' && getCookie('phpVersion') == 1) { layer.msg(lan.soft.apache22_err, { icon: 5 }); return; } } var optw = ''; if (name == 'mysql') { optw = "

  • " + lan.soft.mysql_f + "
  • " var sUrl = '/data?action=getData&table=databases'; $.ajax({ url: sUrl, type: "GET", async: false, success: function(dataD) { if (dataD.data.length > 0) { layer.msg(lan.soft.mysql_d, { icon: 5, time: 5000 }) isError = true;; } } }); } if (isError) return; var one = layer.open({ type: 1, title: lan.soft.type_title, area: '350px', closeBtn: 2, shadeClose: true, content: "
    \
    " + lan.soft.install_version + ":" + name + " " + version + "" + optw + "
    \
    " + lan.bt.install_type + ":
    \
    \ \ \
    \
    " }) $('.fangshi input').click(function() { $(this).attr('checked', 'checked').parent().siblings().find("input").removeAttr('checked'); }); $("#bi-btn").click(function() { var type = $('.fangshi input').prop("checked") ? '1' : '0'; var data = "name=" + name + "&version=" + version + "&type=" + type; var loadT = layer.msg(lan.soft.add_install, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/files?action=InstallSoft', data, function(rdata) { layer.closeAll(); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); GetSList(); }) }); $(".one-close").click(function() { layer.close(one); }) InstallTips(); fly("bi-btn"); } function AddVersion(name, ver, type, obj, title) { if (type == "lib") { layer.confirm(lan.get('install_confirm', [title, ver]), { icon: 3, closeBtn: 2 }, function() { $(obj).text(lan.soft.install_the); var data = "name=" + name; var loadT = layer.msg(lan.soft.the_install, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post("/plugin?action=install", data, function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); setTimeout(function() { GetSList() }, 2000) }); }); return; } var titlename = name; var veropt = ver.split("|"); var SelectVersion = ''; for (var i = 0; i < veropt.length; i++) { SelectVersion += ''; } if (name == 'phpmyadmin' || name == 'nginx' || name == 'apache') { var isError = false $.ajax({ url: '/ajax?action=GetInstalled', type: 'get', async: false, success: function(rdata) { if (name == 'nginx') { if (rdata.webserver != name.toLowerCase() && rdata.webserver != false) { layer.msg(lan.soft.err_install1, { icon: 2 }) isError = true; return; } } if (name == 'apache') { if (rdata.webserver != name.toLowerCase() && rdata.webserver != false) { layer.msg(lan.soft.err_install2, { icon: 2 }) isError = true; return; } } if (name == 'phpmyadmin') { if (rdata.php.length < 1) { layer.msg(lan.soft.err_install3, { icon: 2 }) isError = true; return; } if (!rdata.mysql.setup) { layer.msg(lan.soft.err_install4, { icon: 2 }) isError = true; return; } } } }); if (isError) return; } layer.open({ type: 1, title: titlename + lan.soft.install_title, area: '350px', closeBtn: 2, shadeClose: true, content: "
    \
    " + lan.soft.install_version + ":
    \
    " + lan.bt.install_type + ":
    \
    \ \ \
    \
    " }) selectChange(); $('.fangshi input').click(function() { $(this).attr('checked', 'checked').parent().siblings().find("input").removeAttr('checked'); }); $("#bi-btn").click(function() { var info = $("#SelectVersion").val().toLowerCase(); var name = info.split(" ")[0]; var version = info.split(" ")[1]; var type = $('.fangshi input').prop("checked") ? '1' : '0'; var data = "name=" + name + "&version=" + version + "&type=" + type; var loadT = layer.msg(lan.soft.add_install, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post("/plugins/install", data, function(rdata) { layer.closeAll(); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); GetSList(); }); }); InstallTips(); fly("bi-btn"); } function selectChange() { $("#SelectVersion,#selectVer").change(function() { var info = $(this).val(); var name = info.split(" ")[0]; var version = info.split(" ")[1]; max = 64 msg = "64M" if (name == 'mysql') { memSize = getCookie('memSize'); switch (version) { case '5.1': max = 256; msg = '256M'; break; case '8.0': max = 5200; msg = '6GB'; break; case '5.7': max = 1500; msg = '2GB'; break; case '5.6': max = 800; msg = '1GB'; break; case 'AliSQL': max = 800; msg = '1GB'; break; case 'mariadb_10.0': max = 800; msg = '1GB'; break; case 'mariadb_10.1': max = 1500; msg = '2GB'; break; } if (memSize < max) { layer.msg(lan.bt.insatll_mem.replace('{1}', msg).replace('{2}', version), { icon: 5 }); } } }); } //卸载软件 function UninstallVersion(name, version, title) { var isError = false if (name == 'mysql') { var sUrl = '/data?action=getData&table=databases'; $.ajax({ url: sUrl, type: "GET", async: false, success: function(dataD) { if (dataD.data.length > 0) { layer.msg(lan.soft.mysql_del_err + '

    强行卸载: curl http://h.bt.cn/mu.sh|bash

    ', { icon: 5, time: 8000 }); isError = true;; } } }); } if (isError) return; layer.confirm(lan.soft.uninstall_confirm.replace('{1}', title).replace('{2}', version), { icon: 3, closeBtn: 2 }, function() { var data = 'name=' + name + '&version=' + version; var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/plugin?action=unInstall', data, function(rdata) { layer.close(loadT) GetSList(); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }) }); } //获取插件列表 function GetLibList() { var loadT = layer.msg(lan.soft.get_list, { icon: 16, time: 0, shade: [0.3, '#000'] }) $.post('/ajax?action=GetLibList', '', function(rdata) { layer.close(loadT) var tBody = '' for (var i = 0; i < rdata.length; i++) { tBody += "\ " + rdata[i].name + "\ " + rdata[i].type + "\ " + rdata[i].ps + "\ --\ " + rdata[i].status + "\ " + rdata[i].optstr + "\ " } $("#softList").append(tBody); }); } //设置插件 function SetLibConfig(name, action) { if (action == 1) { var access_key = $("input[name='access_key']").val(); var secret_key = $("input[name='secret_key']").val(); var bucket_name = $("input[name='bucket_name']").val(); if (access_key.length < 1 || secret_key.length < 1 || bucket_name.length < 1) { layer.msg(lan.soft.from_err, { icon: 2 }); return; } var bucket_domain = $("input[name='bucket_domain']").val(); var data = 'name=' + name + '&access_key=' + access_key + '&secret_key=' + secret_key + '&bucket_name=' + bucket_name + '&bucket_domain=' + bucket_domain; var loadT = layer.msg(lan.soft.lib_the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/ajax?action=SetQiniuAS', data, function(rdata) { layer.close(loadT); if (rdata.status) layer.closeAll(); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }).error(function() { layer.close(loadT); layer.msg(lan.public.error, { icon: 2 }); }); return; } if (name == 'beta') { neice(); return; } $.post('/ajax?action=GetQiniuAS', 'name=' + name, function(rdata) { var keyMsg = rdata.info.key.split('|'); var secretMsg = rdata.info.secret.split('|'); var bucketMsg = rdata.info.bucket.split('|'); var domainMsg = rdata.info.domain.split('|'); var body = "
    " + "

    " + keyMsg[0] + ": *" + keyMsg[2] + " " + ' [' + lan.public.help + ']' + "

    " + "

    " + secretMsg[0] + ": *" + secretMsg[2] + "

    " + "

    " + bucketMsg[0] + ": *" + bucketMsg[2] + "

    " + "

    " + domainMsg[0] + ": *" + domainMsg[2] + "

    " + '
    ' + '' + '' + "" + '
    ' + "
    " layer.open({ type: 1, shift: 5, closeBtn: 2, area: '700px', title: lan.soft.lib_config + rdata.info.name, content: body }); }); } //安装插件 function InstallLib(name) { layer.confirm(lan.soft.lib_insatll_confirm.replace('{1}', name), { title: lan.soft.lib_install, icon: 3, closeBtn: 2 }, function() { var loadT = layer.msg(lan.soft.lib_install_the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/ajax?action=InstallLib', 'name=' + name, function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); if (rdata.status) { GetSList(); SetLibConfig(name); } }); }); } //卸载插件 function UninstallLib(name) { layer.confirm(lan.soft.lib_uninsatll_confirm.replace('{1}', name), { title: lan.soft.lib_uninstall, icon: 3, closeBtn: 2 }, function() { var loadT = layer.msg(lan.soft.lib_uninstall_the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/ajax?action=UninstallLib', 'name=' + name, function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); if (rdata.status) { GetSList(); } }); }); } //首页显示 function toIndexDisplay(name, version) { var status = $("#index_" + name).prop("checked") ? "0" : "1"; if (name == "php") { var verinfo = version.replace(/\./, ""); status = $("#index_" + name + verinfo).prop("checked") ? "0" : "1"; } var data = "name=" + name + "&status=" + status + "&version=" + version; $.post("plugin?action=setPluginStatus", data, function(rdata) { if (rdata.status) { layer.msg(rdata.msg, { icon: 1 }) } }) } //刷新缓存 function flush_cache() { var loadT = layer.msg(lan.soft.get_list, { icon: 16, time: 0, shade: [0.3, '#000'] }) $.post('/plugin?action=flush_cache', {}, function(rdata) { layer.close(loadT) layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }); } $(function() { if (window.document.location.pathname == '/soft') { setInterval(function() { GetSList(true); }, 5000); } });