//软件管理 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 = [ '
', '', '', '', '', '', '', '', '', '', '', '' ] 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[i].name+''+ibody+', '+rdata[i].ps+'
' } var phpCon = ''+lan.soft.status+':'+(status?lan.soft.on:lan.soft.off)+'
\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+'
\ \'+lan.soft.php_ext_name+' | ' +''+lan.soft.php_ext_type+' | ' +''+lan.soft.php_ext_ps+' | ' +''+lan.soft.php_ext_status+' | ' +''+lan.public.action+' | ' +'
---|
"+lan.soft.php_ext_name+" | "+lan.public.action+" |
---|
"+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+"
" +"" +"'+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.waf_up_from2+" | "+lan.public.action+" |
---|
"+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+" |
'+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: '字段 | 当前值 | 说明 | \ \
---|---|---|
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() 操作耗费的微秒数 |
字段 | 当前值 | 说明 | \ \
---|---|---|
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)+' | 发送总大小 |
BindIP监听IP,请勿随意修改
\PORT监听端口,一般无需修改
\CACHESIZEMB,缓存大小,建议不要大于512M
\MAXCONN最大连接数,建议不要大于40960
\ \\ \ \
'; $(".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+' |
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+'
\ \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(LimitCon); }); } //软件切换版本 function softChangeVer(name,version){ if(name == "mysqld") name = "mysql"; var veropt = version.split("|"); var SelectVersion = ''; for(var i=0; i'+lan.soft.pma_user+'
\'+lan.soft.pma_pass1+'
\'+lan.soft.pma_pass2+'
\ \"+lan.soft.qiniu_th1+" | \"+lan.soft.qiniu_th2+" | \"+lan.soft.qiniu_th3+" | \"+lan.soft.qiniu_th4+" | \
---|
注:如需购买多台永久授权,请登录宝塔官网购买。去宝塔官网
\暂无代金券
"); } }) } //取专业版代金券 function get_pro_coupon(){ $("#couponlist").html("暂无代金券
"); } }) } //插件代金券续费 function useCoupon_plugin(code,pid){ var loadT = layer.msg("提交中,请稍后。",{ icon: 16, time: 0, shade: [0.3, "#000"]}); $.post("/auth?action=create_order_voucher_plugin",{pid:pid,code:code},function(rdata){ layer.closeAll(); layer.msg(rdata.msg); }) } //专业版代金券续费 function useCoupon(code){ var loadT = layer.msg("提交中,请稍后。",{ icon: 16, time: 0, shade: [0.3, "#000"]}); $.post("/auth?action=create_order_voucher",{code:code},function(rdata){ layer.closeAll(); layer.msg(rdata.msg); if(rdata.status === true){ layer.msg("支付成功!专业版升级中,请勿操作!",{icon: 16, time: 0, shade: [0.3, "#000"]}); $.get("/system?action=UpdatePro",function(rr){ show_upVip(); }).error(function(){ show_upVip(); }); } }) } function show_upVip(){ layer.closeAll(); layer.msg("恭喜您,升级完成!",{icon:1}); setTimeout(function(){window.location.href = '/';},3000); } //取专业版产品折扣信息 function get_product_discount(){ var con = '强行卸载: 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"+keyMsg[0]+": *"+keyMsg[2]+" "+' ['+lan.public.help+']'+"
" +""+secretMsg[0]+": *"+secretMsg[2]+"
" +""+bucketMsg[0]+": *"+bucketMsg[2]+"
" +""+domainMsg[0]+": *"+domainMsg[2]+"
" +'