HEX
Server: nginx/1.28.3
System: Linux ip-172-31-12-242 6.17.0-1007-aws #7~24.04.1-Ubuntu SMP Thu Jan 22 21:04:49 UTC 2026 x86_64
User: root (0)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/server/panel/BTPanel/static/js/index508.js
import{r as m,H as T,e as l,x as r,c as Ge,o as Ue,I as De,j as c,C as L,v as t,p as a,Q as E,J as C,q as o,k as V,F as O,B as A,s as y,y as Fe,L as Ee,M as Te,aE as Ie,z as Oe,am as Me,an as Ne,ad as $e,ab as ze,b5 as Ae,b6 as Re,G as je}from"./base-lib.js?v=1777008528";import{B as Je}from"./index130.js?v=1777008528";import{k as p,F as Ke,M,w as be,c as Qe,d3 as Ze,cO as We,K as Xe,cR as Ye,cZ as el}from"./utils-lib.js?v=1777008528";import{_ as ll}from"./index206.js?v=1777008528";import{_ as al}from"./index118.js?v=1777008528";import{S as sl,_ as tl}from"./index.vue_vue_type_script_setup_true_lang23.js?v=1777008528";import{S as nl,_ as ol}from"./index.vue_vue_type_script_setup_true_lang24.js?v=1777008528";import{b6 as il,b7 as rl,a0 as oe,b8 as ul,b9 as dl,ba as pl,bb as ml,bc as cl,g as ge,bd as vl,be as fl,bf as _l,bg as bl,bh as gl,bi as xl,bj as yl,bk as wl,bl as kl,bm as Cl,bn as Pl,bo as Vl,bp as hl,ae as Sl,bq as Bl,br as Ll,bs as ql,bt as Hl,bu as Gl}from"./index3.js?v=1777008528";import"./__commonjsHelpers__.js?v=1777008528";import"./ace.js?v=1777008528";import"./index119.js?v=1777008528";import"./index116.js?v=1777008528";const Ul=sl(),Dl=nl(),G=m({}),N=m("service"),g=m(!1),Fl=m(!1),El=m(""),d=m(""),R=m(""),ce={pool:"应用池(pool)",process_manager:"进程管理方式(process manager)",dynamic:"动态",static:"静态",start_time:"启动日期(start time)",accepted_conn:"请求数(accepted conn)",listen_queue:"请求队列(listen queue)",max_listen_queue:"最大等待队列(max listen queue)",len_queue:"socket队列长度(listen queue len)",idle_processes:"空闲进程数量(idle processes)",active_processes:"活跃进程数量(active processes)",total_processes:"总进程数量(total processes)",max_active_processes:"最大活跃进程数量(max active processes)",max_children_reached:"到达进程上限次数(max children reached)",slow_requests:"慢请求数量(slow requests)"},j=m([]),B=m(!1),le=T({slowLogs:"",logs:""}),F=m(""),P=T({uploadLimit:"",timeLimit:""}),xe=async()=>{await p({loading:B,request:il({version:d.value}),success:s=>{le.slowLogs=s.data.msg||"当前暂无数据"}})},ye=async()=>{await p({loading:B,request:rl({version:d.value}),success:s=>{le.logs=s.msg?s.msg:"当前暂无数据"}})},Tl=async()=>{await p({loading:g,request:Cl({version:d.value}),success:s=>{P.uploadLimit=s.data.max,P.timeLimit=s.data.maxTime}})},Il=s=>{if(s==="timeout"){if(!/^[1-9]\d*$/.test(P.timeLimit))return M.error("请输入正整数"),!1;if(Number(P.timeLimit)<30||Number(P.timeLimit)>86400)return M.error("超时限制范围为30-86400"),!1}else{if(!/^[1-9]\d*$/.test(P.uploadLimit))return M.error("请输入正整数"),!1;if(Number(P.uploadLimit)<2)return M.error("上传大小限制不可小于2M"),!1}return!0},ve=async()=>{if(!Il(N.value))return;const i=N.value==="timeout",_=i?Pl:Vl,I={version:d.value,[i?"time":"max"]:i?P.timeLimit:P.uploadLimit};await p({loading:"正在保存中,请稍后...",request:_(I),message:!0})},Ol=async()=>{g.value=!0;try{const s=await hl({version:d.value});j.value=[],Object.keys(s.data).forEach(i=>{ce[i.replaceAll(" ","_")]&&j.value.push({name:ce[i.replaceAll(" ","_")],value:s.data[i]})}),j.value.length===0&&(j.value=[{name:"当前暂无数据",value:"null"}])}catch(s){}finally{g.value=!1}},fe=async s=>{await p({loading:B,request:Sl({path:s}),data:{data:[String,F]}})},W=async s=>{await p({loading:"正在保存配置,请稍后...",request:Ke({path:"/www/server/php/"+d.value+"/etc/"+s,data:F.value,encoding:"utf-8"}),message:!0})},Ml=m([{label:"名称",prop:"name"},{label:"类型",prop:"type"},{label:"说明",prop:"msg",width:320},{label:"状态",prop:"status",width:60,render:s=>s.status?l("i",{class:"svgtofont-el-check font-bold "},null):l("i",{class:"svgtofont-el-close font-bold "},null)},{label:"操作",align:"right",render:s=>s.task==="-1"&&s.phpversions.indexOf(R.value)!="-1"?l("span",{class:"bt-link",onClick:oe},[r("正在安装")]):s.task==="0"&&s.phpversions.indexOf(R.value)!="-1"?l("span",{class:"!text-small bt-link",onClick:oe},[r("等待安装..")]):s.status?l("span",{class:"!text-danger bt-link",onClick:()=>{p({loading:"正在卸载中,请稍后...",request:ul({name:s.name,version:R.value}),message:!0})}},[r("卸载")]):l("span",{class:"bt-link",onClick:()=>{p({loading:"正在安装中,请稍后...",request:dl({name:s.name.toLowerCase(),version:R.value,type:1}),message:!0,success:()=>{oe(),se()}})}},[r("安装")])}]),ie=m([]),q=T({list:[],functionInput:""}),se=async()=>{await p({loading:B,request:pl({version:d.value}),data:{libs:[Array,ie],disable_functions:String},success:s=>{const i=s.libs.filter(_=>_.versions.includes(d.value));ie.value=i,q.list=s.disable_functions?s.disable_functions.split(",").map(_=>({name:_})):[]}})},J=m([]),Nl=async()=>{let s={version:d.value};J.value.forEach(i=>{switch(s[i.name]=i.value,i.name){case"cgi.fix_pathinfo":s["cgi.fix_pathinfo"]=i.value==="On"?1:0;break}}),await p({loading:"正在保存中,请稍后...",request:ml(s),message:!0})},we=async(s=!1)=>{await p({loading:g,request:cl({version:d.value}),data:[Array,J],success:i=>{for(let _=0;_<J.value.length;_++){const I=J.value[_];switch(I.name){case"cgi.fix_pathinfo":I.value=Number(I.value)===1?"On":"Off";break}}s&&M.success("刷新成功")}})},$l=()=>{const s=q.list.map(_=>_.name).join(",");return{version:d.value,disable_functions:s}},ke=async s=>{const i=$l();await p({loading:"正在保存中,请稍后...",request:Bl(i),message:!0,success:_=>{_.status&&(q.functionInput="",se())}})},zl=async()=>{q.list.push({name:q.functionInput}),await ke()},Al=async s=>{q.list.splice(q.list.indexOf(s),1),await ke()},Rl=m([{label:"名称",prop:"name"},ge([{title:"删除",onClick:Al}])]),re={"1GB内存":{max_children:30,start_servers:5,min_spare_servers:5,max_spare_servers:20},"2GB内存":{max_children:50,start_servers:5,min_spare_servers:5,max_spare_servers:30},"4GB内存":{max_children:80,start_servers:10,min_spare_servers:10,max_spare_servers:30},"8GB内存":{max_children:120,start_servers:10,min_spare_servers:10,max_spare_servers:30},"16GB内存":{max_children:200,start_servers:15,min_spare_servers:15,max_spare_servers:50},"32GB内存":{max_children:300,start_servers:20,min_spare_servers:20,max_spare_servers:50},"48GB内存":{max_children:400,start_servers:20,min_spare_servers:20,max_spare_servers:50},"64GB内存":{max_children:500,start_servers:30,min_spare_servers:30,max_spare_servers:60},"96GB内存":{max_children:700,start_servers:40,min_spare_servers:40,max_spare_servers:70},"128GB内存":{max_children:1e3,start_servers:50,min_spare_servers:50,max_spare_servers:100}},f=T({limit:"",listen:"",bind_port:"",allowed:"",pm:"",max_children:"",start_servers:"",min_spare_servers:"",max_spare_servers:""}),K=m([]),Ce={max_children:"允许创建的最大子进程数",start_servers:"起始进程数(服务启动后初始进程数量)",min_spare_servers:"最小空闲进程数(清理空闲进程后的保留数量)",max_spare_servers:"最大空闲进程数(当空闲进程达到此值时清理)"},jl=s=>{K.value=Object.entries(re[s]).map(i=>({name:i[0],value:i[1],tips:Ce[i[0]]}))},Jl=async()=>{K.value.forEach((s,i)=>{i<4&&(f[s.name]=s.value)}),await p({loading:"正在保存中,请稍后...",request:vl({version:d.value,...f,btn_children_submit:""}),message:!0})},Kl=async()=>{g.value=!0;try{const{data:s}=await Ll({version:d.value});K.value=[],Object.keys(s).forEach(i=>{K.value.push({name:i,value:s[i],tips:Ce[i]})}),f.listen=s.unix,f.allowed=s.allowed,f.bind_port=s.bind+(s.port?":"+s.port:""),f.pm=s.pm,Object.keys(re).forEach(i=>{re[i].max_children===Number(s.max_children)&&(f.limit=i)})}catch(s){}finally{g.value=!1}},u=T({save_handler:"",save_path:"",port:"",passwd:""}),ae=T({total:0,oldfile:0}),Ql=async()=>{await p({loading:"正在保存中,请稍后...",request:fl({version:d.value,save_handler:u.save_handler,ip:u.save_path,port:u.port,passwd:u.passwd}),message:!0})},Zl=async()=>{await be({title:"清理php_session文件",icon:"warning-filled",content:"是否清理php_session文件?"}),p({loading:"正在清理,请稍后...",request:_l(),message:!0,success:Pe})},Pe=async()=>{await p({loading:B,request:bl({version:d.value}),success:s=>{ae.total=s.data.total,ae.oldfile=s.data.oldfile}})},Wl=async()=>{switch(u.save_handler){case"redis":u.save_path="127.0.0.1",u.port="6379";break;case"memcache":case"memcached":u.save_path="127.0.0.1",u.port="11211";break;case"files":u.save_path="",u.port="",u.passwd="";break}},Xl=async()=>{await p({loading:g,request:ql({version:d.value}),success:s=>{u.save_handler=s.data.save_handler,u.save_path=s.data.save_path,u.port=s.data.port,u.passwd=s.data.passwd}})},Ve=m([]),X=m(!1),he=m(""),h=T({data:{},key:[]}),Se=async()=>{await p({loading:g,request:Hl({php_version:d.value}),success:s=>{h.data=s.data,h.key=Object.keys(h.data.phpinfo.keys);const i=s.data.phpinfo.modules.split(" ")||[];Ve.value=i.map(_=>({name:_}))}})},Yl=async()=>{await p({request:gl({version:d.value}),success:s=>{he.value=s.data.replace("a:link {color: #009; text-decoration: none; background-color: #fff;}","").replace("a:link {color: #000099; text-decoration: none; background-color: #ffffff;}",""),X.value=!0}})},ea=async({props:{name:s}})=>{switch(s){case"development":case"function":se();break;case"performance":Kl();break;case"session":Xl(),Pe();break;case"phpinfo":Se();break;case"settings":we();break;case"config":fe("/www/server/php/"+d.value+"/etc/php.ini");break;case"fpm":fe("/www/server/php/"+d.value+"/etc/php-fpm.conf");break;case"state":Ol();break;case"logs":ye();break;case"slowLogs":xe();break;case"timeout":case"upload":Tl();break}},_e=async()=>{try{p({loading:"正在获取中,请稍后...",request:xl(),message:!0})}catch(s){}},la=s=>{N.value="service",s&&(G.value=s),Ul.init(G.value),Dl.init(G.value),Fl.value=G.value.status,El.value=G.value.s_version+"-"+G.value.name.replace("php-","").replace(".",""),d.value=G.value.name.replace("php-","").replace(".",""),R.value=G.value.version.split(".")[0]+G.value.version.split(".")[1]},Y=m("list"),aa=async({props:{name:s}})=>{Y.value=s,s==="list"?se():s==="installed"?Se():s==="pecl"&&na()},Be=m([]),$=m(""),ee=m(!1),Le=m(""),sa=async()=>{if(!$.value)return M.error("请输入扩展名称");try{await p({loading:"正在安装中,请稍后...",request:yl({name:$.value,version:d.value}),message:!0}),$.value=""}catch(s){}},ta=async s=>{try{await be({title:"删除扩展",icon:"warning-filled",content:"是否删除扩展【"+s.name+"】?"}),await p({loading:"正在删除中,请稍后...",request:Gl({phpv:d.value,name:s.name}),message:!0})}catch(i){}},na=async()=>{try{await p({request:wl({version:d.value}),data:[Array,Be]})}catch(s){}},oa=async()=>{try{const s=await p({loading:"正在获取中,请稍后...",request:kl({version:d.value})});Le.value=s.data.msg||"当前暂无数据",ee.value=!0}catch(s){}},ia=m([{label:"扩展名称",prop:"name"},{label:"版本",prop:"version"},{label:"类型",prop:"type"},ge([{title:"删除",onClick:ta}])]),ra={class:"mt-[8px] leading-8 text-small list-disc ml-[20px]"},ua={class:"flex items-center"},da={key:0,class:"flex items-center"},pa={key:1,class:"flex items-center"},ma={class:"flex text-secondary items-center"},ca={class:"flex text-secondary items-center"},va={class:"my-[12px]"},fa={class:"leading-8 mt-20px text-small list-disc ml-[20px]"},_a={class:"my-[12px]"},ba={class:"flex items-center"},ga={class:"flex flex-col text-secondary performance"},xa={class:"flex items-center"},ya={class:"flex items-center"},wa={class:"flex items-center"},ka={class:"flex items-center"},Ca={class:"flex items-center"},Pa={class:"ml-[12px] text-tertiary"},Va={class:"flex items-center"},ha={class:"phpinfo pb-[20px]"},Sa={class:"inline-block max-w-[50rem]"},Ba=["innerHTML"],La=Ge({__name:"index",props:{compData:{default:{}}},setup(s){const i=s,{mainHeight:_}=Qe();return Ue(()=>{la(i.compData)}),(I,e)=>{const b=Ie,Q=Ze,S=We,w=Oe,ue=al,te=ll,de=Xe,pe=Ye,v=Me,z=Ne,x=$e,ne=ze,me=Je,U=Ae,Z=Re,qe=je,k=De("bt-loading");return c(),L(pe,{modelValue:a(N),"onUpdate:modelValue":e[24]||(e[24]=n=>E(N)?N.value=n:null),type:"left-bg-card",onTabClick:a(ea)},{default:t(()=>[l(b,{label:"服务",name:"service"},{default:t(()=>[l(tl),l(ol)]),_:1}),l(b,{label:"安装扩展",name:"development",lazy:""},{default:t(()=>[l(pe,{type:"card",onTabClick:a(aa),modelValue:a(Y),"onUpdate:modelValue":e[3]||(e[3]=n=>E(Y)?Y.value=n:null)},{default:t(()=>[l(b,{label:"安装列表",name:"list"},{default:t(()=>[C(l(Q,{column:a(Ml),data:a(ie),"max-height":"450"},null,8,["column","data"]),[[k,a(B)]]),o("ul",ra,[o("li",null,[o("span",{class:"bt-link",onClick:e[0]||(e[0]=(...n)=>a(_e)&&a(_e)(...n))},"点击获取最新扩展列表")]),e[25]||(e[25]=o("li",null,"Redis扩展仅支持一个PHP版本安装使用,若在其它PHP版本已安装redis扩展,请勿再装",-1)),e[26]||(e[26]=o("li",null,"请按实际需求安装扩展,不要安装不必要的PHP扩展,这会影响PHP执行效率,甚至出现异常",-1)),e[27]||(e[27]=o("li",null,"opcache/xcache/apc等脚本缓存扩展,请只安装其中1个,否则可能导致您的站点程序异常",-1))])]),_:1}),l(b,{label:"已安装扩展",name:"installed"},{default:t(()=>[C(l(Q,{column:[{label:"扩展名称",prop:"name"}],data:a(Ve),"max-height":"520"},null,8,["data"]),[[k,a(B)]])]),_:1}),l(b,{label:"pecl扩展安装",name:"pecl"},{default:t(()=>[l(ue,null,{"header-left":t(()=>[o("div",ua,[e[30]||(e[30]=o("span",{class:"mr-8px"},"扩展名称",-1)),l(S,{placeholder:"请输入扩展名称",width:"32rem",modelValue:a($),"onUpdate:modelValue":e[1]||(e[1]=n=>E($)?$.value=n:null)},null,8,["modelValue"]),l(w,{type:"primary",class:"ml-[8px]",onClick:a(sa)},{default:t(()=>[...e[28]||(e[28]=[r("点击安装",-1)])]),_:1},8,["onClick"]),l(w,{class:"ml-[8px]",onClick:a(oa)},{default:t(()=>[...e[29]||(e[29]=[r("安装日志",-1)])]),_:1},8,["onClick"])])]),content:t(()=>[l(Q,{column:a(ia),data:a(Be),"max-height":"500"},null,8,["column","data"])]),"footer-left":t(()=>[...e[31]||(e[31]=[o("ul",{class:"mt-[8px] leading-8 text-small list-disc ml-[20px]"},[o("li",null,"pecl扩展与扩展安装仅能选择一处安装"),o("li",null,"如出现安装异常请查看安装日志手动处理"),o("li",null,"安装时的选项参数均为默认"),o("li",null,"安装日志仅展示最新一次的安装日志数据")],-1)])]),_:1}),l(de,{title:"pecl安装日志",area:54,modelValue:a(ee),"onUpdate:modelValue":e[2]||(e[2]=n=>E(ee)?ee.value=n:null)},{default:t(()=>[l(te,{title:"全屏查看日志",content:a(Le),autoScroll:!0,isHtml:!0,style:"height:460px"},null,8,["content"])]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["onTabClick","modelValue"])]),_:1}),l(b,{label:"配置修改",name:"settings",lazy:""},{default:t(()=>[C((c(),V("div",null,[l(ne,{"label-position":"right","label-width":"200px",class:"settings"},{default:t(()=>[(c(!0),V(O,null,A(a(J),(n,D)=>(c(),L(x,{label:n.name,key:D},{default:t(()=>[n.type==2||n.type===3?(c(),V("div",da,[l(S,{modelValue:n.value,"onUpdate:modelValue":H=>n.value=H,width:"12rem",class:"mr-[12px]"},null,8,["modelValue","onUpdate:modelValue"]),o("span",null,y(n.ps),1)])):(c(),V("div",pa,[l(z,{modelValue:n.value,"onUpdate:modelValue":H=>n.value=H,class:"!w-[12rem] mr-[12px]"},{default:t(()=>[l(v,{label:"开启",value:"On"}),l(v,{label:"关闭",value:"Off"})]),_:1},8,["modelValue","onUpdate:modelValue"]),o("span",null,y(n.ps),1)]))]),_:2},1032,["label"]))),128)),l(x,{label:" ",class:"mt-[20px]"},{default:t(()=>[l(w,{type:"primary",onClick:a(Nl)},{default:t(()=>[...e[32]||(e[32]=[r("保存",-1)])]),_:1},8,["onClick"]),l(w,{type:"default",onClick:e[4]||(e[4]=n=>a(we)(!0))},{default:t(()=>[...e[33]||(e[33]=[r("刷新",-1)])]),_:1})]),_:1})]),_:1})])),[[k,a(g)]])]),_:1}),C((c(),L(b,{label:"上传限制",name:"upload"},{default:t(()=>[o("div",ma,[l(S,{modelValue:a(P).uploadLimit,"onUpdate:modelValue":e[5]||(e[5]=n=>a(P).uploadLimit=n),type:"number","text-type":"MB",width:"14rem"},{append:t(()=>[...e[34]||(e[34]=[r("MB",-1)])]),_:1},8,["modelValue"]),l(w,{type:"primary",class:"ml-[12px]",onClick:a(ve)},{default:t(()=>[...e[35]||(e[35]=[r("保存",-1)])]),_:1},8,["onClick"])])]),_:1})),[[k,a(g)]]),C((c(),L(b,{label:"超时限制",name:"timeout"},{default:t(()=>[o("div",ca,[l(S,{modelValue:a(P).timeLimit,"onUpdate:modelValue":e[6]||(e[6]=n=>a(P).timeLimit=n),type:"number","text-type":"秒",width:"14rem"},{append:t(()=>[...e[36]||(e[36]=[r("秒",-1)])]),_:1},8,["modelValue"]),l(w,{type:"primary",class:"ml-[12px]",onClick:a(ve)},{default:t(()=>[...e[37]||(e[37]=[r("保存",-1)])]),_:1},8,["onClick"])])]),_:1})),[[k,a(g)]]),l(b,{label:"配置文件",name:"config",lazy:""},{default:t(()=>[e[40]||(e[40]=o("span",{class:"my-[4px] text-secondary"},"提示:Ctrl+F 搜索关键字,Ctrl+S 保存,Ctrl+H 查找替换",-1)),o("div",va,[C(l(me,{class:"!h-[46rem] !w-[64rem]",modelValue:a(F),"onUpdate:modelValue":e[7]||(e[7]=n=>E(F)?F.value=n:null),id:"configContent",onSave:e[8]||(e[8]=n=>a(W)("php.ini"))},null,8,["modelValue"]),[[k,a(B)]])]),l(w,{type:"primary",onClick:e[9]||(e[9]=n=>a(W)("php.ini"))},{default:t(()=>[...e[38]||(e[38]=[r("保存",-1)])]),_:1}),o("ul",fa,[o("li",null,"此处为"+y(s.compData.name)+"主配置文件,若您不了解配置规则,请勿随意修改",1),e[39]||(e[39]=o("li",null,"默认已开启Openssl/Curl/Mysql等扩展,详情可点击phpinfo查看",-1))])]),_:1}),l(b,{label:"FPM配置文件",name:"fpm"},{default:t(()=>[e[42]||(e[42]=o("span",{class:"my-[4px] text-secondary"},"提示:Ctrl+F 搜索关键字,Ctrl+S 保存,Ctrl+H 查找替换",-1)),o("div",_a,[C(l(me,{class:"!h-[48rem] !w-[64rem]",modelValue:a(F),"onUpdate:modelValue":e[10]||(e[10]=n=>E(F)?F.value=n:null),id:"fpmContent",onSave:e[11]||(e[11]=n=>a(W)("php-fpm.conf"))},null,8,["modelValue"]),[[k,a(B)]])]),l(w,{type:"primary",onClick:e[12]||(e[12]=n=>a(W)("php-fpm.conf"))},{default:t(()=>[...e[41]||(e[41]=[r("保存",-1)])]),_:1}),e[43]||(e[43]=o("ul",{class:"mt-[8px] leading-8 text-small list-disc ml-[20px]"},[o("li",null,"此处为PHP-FPM配置文件,若您不了解配置规则,请勿修改!")],-1))]),_:1}),l(b,{label:"禁用函数",name:"function",lazy:""},{default:t(()=>[l(ue,null,{"header-left":t(()=>[o("div",ba,[l(S,{placeholder:"添加要被禁止的函数名,如: exec",width:"32rem",modelValue:a(q).functionInput,"onUpdate:modelValue":e[13]||(e[13]=n=>a(q).functionInput=n)},null,8,["modelValue"]),l(w,{type:"primary",class:"ml-[8px]",onClick:a(zl)},{default:t(()=>[...e[44]||(e[44]=[r("保存",-1)])]),_:1},8,["onClick"])])]),content:t(()=>[C(l(Q,{column:a(Rl),data:a(q).list,"max-height":"500"},null,8,["column","data"]),[[k,a(B)]])]),"footer-left":t(()=>[...e[45]||(e[45]=[o("ul",{class:"mt-[8px] leading-8 text-small list-disc ml-[20px]"},[o("li",null,"在此处可以禁用指定函数的调用,以增强环境安全性!"),o("li",null,"强烈建议禁用如exec,system等危险函数!")],-1)])]),_:1})]),_:1}),l(b,{label:"性能调整",name:"performance",lazy:""},{default:t(()=>[C((c(),V("div",ga,[l(ne,{"label-position":"right","label-width":"140px",class:"mb-[20px] performance-form",model:a(f)},{default:t(()=>[l(x,{label:"并发方案"},{default:t(()=>[l(z,{class:"!w-[16rem] mr-[4px]",modelValue:a(f).limit,"onUpdate:modelValue":e[14]||(e[14]=n=>a(f).limit=n),onChange:a(jl)},{default:t(()=>[l(v,{label:"1GB内存",value:"1GB内存"}),l(v,{label:"2GB内存",value:"2GB内存"}),l(v,{label:"4GB内存",value:"4GB内存"}),l(v,{label:"8GB内存",value:"8GB内存"}),l(v,{label:"16GB内存",value:"16GB内存"}),l(v,{label:"32GB内存",value:"32GB内存"}),l(v,{label:"48GB内存",value:"48GB内存"}),l(v,{label:"64GB内存",value:"64GB内存"}),l(v,{label:"96GB内存",value:"96GB内存"}),l(v,{label:"128GB内存",value:"128GB内存"})]),_:1},8,["modelValue","onChange"])]),_:1}),l(x,{label:"连接方式"},{default:t(()=>[o("div",xa,[l(z,{class:"!w-[16rem] mr-[12px]",modelValue:a(f).listen,"onUpdate:modelValue":e[15]||(e[15]=n=>a(f).listen=n)},{default:t(()=>[l(v,{label:"Unix套接字",value:"unix"}),l(v,{label:"Tcp套接字",value:"tcp"})]),_:1},8,["modelValue"]),e[46]||(e[46]=o("span",{class:"text-tertiary"},"推荐Unix套接字",-1))])]),_:1}),l(x,{label:"连接信息"},{default:t(()=>[o("div",ya,[l(S,{width:"16rem",modelValue:a(f).bind_port,"onUpdate:modelValue":e[16]||(e[16]=n=>a(f).bind_port=n)},null,8,["modelValue"]),e[47]||(e[47]=o("span",{class:"ml-12px text-tertiary"},"绑定IP:监听端口或Uinx套接字地址",-1))])]),_:1}),l(x,{label:"IP白名单"},{default:t(()=>[o("div",wa,[l(S,{width:"16rem",modelValue:a(f).allowed,"onUpdate:modelValue":e[17]||(e[17]=n=>a(f).allowed=n)},null,8,["modelValue"]),e[48]||(e[48]=o("span",{class:"ml-12px text-tertiary"},"允许访问PHP的IP,多个请用逗号隔开",-1))])]),_:1}),l(x,{label:"运行模式"},{default:t(()=>[o("div",ka,[l(z,{class:"!w-[16rem] mr-[12px]",modelValue:a(f).pm,"onUpdate:modelValue":e[18]||(e[18]=n=>a(f).pm=n)},{default:t(()=>[l(v,{label:"静态模式",value:"static"}),l(v,{label:"动态模式",value:"dynamic"}),l(v,{label:"按需模式",value:"ondemand"})]),_:1},8,["modelValue"]),e[49]||(e[49]=o("span",{class:"text-tertiary"},"PHP-FPM运行模式",-1))])]),_:1}),(c(!0),V(O,null,A(a(K),(n,D)=>(c(),V(O,{key:D},[D<4?(c(),L(x,{key:0,label:n.name},{default:t(()=>[o("div",Ca,[l(S,{modelValue:n.value,"onUpdate:modelValue":H=>n.value=H,width:"16rem",type:"number"},null,8,["modelValue","onUpdate:modelValue"]),o("span",Pa,y(n.tips),1)])]),_:2},1032,["label"])):Fe("",!0)],64))),128)),l(x,{label:" "},{default:t(()=>[l(w,{type:"primary",onClick:a(Jl)},{default:t(()=>[...e[50]||(e[50]=[r("保存",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"]),e[51]||(e[51]=o("ul",{class:"mt-[8px] leading-8 text-small list-disc ml-[20px]"},[o("li",null,"【最大子进程数量】越大,并发能力越强,但max_children最大不要超过5000"),o("li",null,"【内存】每个PHP子进程需要20MB左右内存,过大的max_children会导致服务器不稳定"),o("li",null,"【静态模式】始终维持设置的子进程数量,对内存开销较大,但并发能力较好"),o("li",null,"【动态模式】按设置最大空闲进程数来收回进程,内存开销小,建议小内存机器使用"),o("li",null,"【按需模式】根据访问需求自动创建进程,内存开销极小,但并发能力略差"),o("li",null,"【外网访问】若需外网访问,连接方式为TCP套接字,并将[连接信息-绑定IP]改为0.0.0.0"),o("li",null,"【外网访问】配置正确的IP白名单,在防火墙/安全组放行监听端口,有安全风险,需谨慎"),o("li",null,"调整完配置需要重启PHP才会生效")],-1))])),[[k,a(g)]])]),_:1}),C((c(),L(b,{label:"负载状态",name:"state"},{default:t(()=>[l(Z,{class:"margin-top table-descriptions",column:2,border:""},{default:t(()=>[(c(!0),V(O,null,A(a(j),(n,D)=>(c(),L(U,{key:D,span:2},{label:t(()=>[r(y(n.name),1)]),default:t(()=>[r(" "+y(n.value),1)]),_:2},1024))),128))]),_:1})]),_:1})),[[k,a(g)]]),l(b,{label:"Session配置",name:"session",lazy:""},{default:t(()=>[o("div",null,[C((c(),L(ne,{form:a(u),class:"session"},{default:t(()=>[l(x,{label:"存储模式"},{default:t(()=>[l(z,{modelValue:a(u).save_handler,"onUpdate:modelValue":e[19]||(e[19]=n=>a(u).save_handler=n),onChange:a(Wl),class:"!w-[24rem]"},{default:t(()=>[l(v,{label:"files",value:"files"}),l(v,{label:"Redis",value:"redis"}),l(v,{label:"Memcache",value:"memcache"}),l(v,{label:"Memcached",value:"memcached"})]),_:1},8,["modelValue","onChange"])]),_:1}),l(x,{label:"链接地址"},{default:t(()=>[o("div",Va,[l(S,{modelValue:a(u).save_path,"onUpdate:modelValue":e[20]||(e[20]=n=>a(u).save_path=n),disabled:a(u).save_handler==="files",width:"24rem"},null,8,["modelValue","disabled"]),e[52]||(e[52]=o("span",{class:"ml-[8px]"},"支持域名和IP地址",-1))])]),_:1}),l(x,{label:"端口"},{default:t(()=>[l(S,{modelValue:a(u).port,"onUpdate:modelValue":e[21]||(e[21]=n=>a(u).port=n),disabled:a(u).save_handler==="files",width:"24rem"},null,8,["modelValue","disabled"])]),_:1}),l(x,{label:"密码"},{default:t(()=>[l(S,{placeholder:"无密码时留空",modelValue:a(u).passwd,"onUpdate:modelValue":e[22]||(e[22]=n=>a(u).passwd=n),disabled:a(u).save_handler==="files",width:"24rem"},null,8,["modelValue","disabled"])]),_:1}),l(x,{label:" "},{default:t(()=>[l(w,{type:"primary",onClick:a(Ql)},{default:t(()=>[...e[53]||(e[53]=[r("保存",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["form"])),[[k,a(g)]]),e[58]||(e[58]=o("ul",{class:"mt-[8px] leading-12 text-small list-disc ml-[20px]"},[o("li",null,"若你的站点并发比较高,使用Redis,Memcache能有效提升PHP并发能力"),o("li",null,"若调整Session模式后,网站访问异常,请切换回原来的模式"),o("li",null,"切换Session模式会使在线的用户会话丢失,请在流量小的时候切换")],-1)),l(qe),C((c(),V("div",null,[e[57]||(e[57]=o("div",null,"清理Session文件",-1)),l(Z,{class:"my-[20px] w-[50%] session table-descriptions",column:1,border:""},{default:t(()=>[l(U,null,{label:t(()=>[...e[54]||(e[54]=[r(" 总Session文件数量 ",-1)])]),default:t(()=>[r(" "+y(a(ae).total),1)]),_:1}),l(U,null,{label:t(()=>[...e[55]||(e[55]=[r(" 可清理的Session文件数量 ",-1)])]),default:t(()=>[r(" "+y(a(ae).oldfile),1)]),_:1})]),_:1}),l(w,{type:"primary",onClick:a(Zl)},{default:t(()=>[...e[56]||(e[56]=[r("清理session文件",-1)])]),_:1},8,["onClick"])])),[[k,a(B)]])])]),_:1}),l(b,{label:"日志",name:"logs"},{default:t(()=>[l(te,{title:"全屏查看日志",content:a(le).logs,autoScroll:!0,isHtml:!0,style:"height:600px",refresh:a(ye)},null,8,["content","refresh"])]),_:1}),l(b,{label:"慢日志",name:"slowLogs"},{default:t(()=>[l(te,{title:"全屏查看日志",content:a(le).slowLogs,autoScroll:!0,isHtml:!0,style:"height:600px",refresh:a(xe)},null,8,["content","refresh"])]),_:1}),l(b,{label:"phpinfo",name:"phpinfo",lazy:"",class:"overflow-auto h-full"},{default:t(()=>[C((c(),V("div",null,[o("div",ha,[l(w,{type:"default",onClick:a(Yl)},{default:t(()=>[...e[59]||(e[59]=[r("查看phpinfo",-1)])]),_:1},8,["onClick"]),l(Z,{class:"margin-top table-descriptions",column:2,border:"",title:"基本信息"},{default:t(()=>[l(U,null,{label:t(()=>[...e[60]||(e[60]=[r(" PHP版本 ",-1)])]),default:t(()=>{var n;return[r(" "+y(((n=a(h).data.phpinfo)==null?void 0:n.php_version)||""),1)]}),_:1}),l(U,null,{label:t(()=>[...e[61]||(e[61]=[r(" 安装位置 ",-1)])]),default:t(()=>{var n;return[r(" "+y(((n=a(h).data.phpinfo)==null?void 0:n.php_path)||""),1)]}),_:1}),l(U,{span:2},{label:t(()=>[...e[62]||(e[62]=[r(" php.ini ",-1)])]),default:t(()=>{var n;return[r(" "+y(((n=a(h).data.phpinfo)==null?void 0:n.php_ini)||""),1)]}),_:1}),l(U,{span:2},{label:t(()=>[...e[63]||(e[63]=[r(" 已加载 ",-1)])]),default:t(()=>{var n;return[o("span",Sa,y(((n=a(h).data.phpinfo)==null?void 0:n.modules)||""),1)]}),_:1})]),_:1}),(c(!0),V(O,null,A(a(h).key,(n,D)=>(c(),L(Z,{column:3,class:"table-descriptions",border:"",title:a(h).data.phpinfo.keys[n],key:D},{default:t(()=>[(c(!0),V(O,null,A(Object.keys(a(h).data[n]),(H,He)=>(c(),L(U,{key:He},{label:t(()=>[r(y(H),1)]),default:t(()=>[o("span",{class:Ee(a(h).data[n][H]?"text-primary":"text-danger")},y(a(h).data[n][H]?"yes":"no"),3)]),_:2},1024))),128))]),_:2},1032,["title"]))),128))]),l(de,{title:"phpInfo",modelValue:a(X),"onUpdate:modelValue":e[23]||(e[23]=n=>E(X)?X.value=n:null),area:["90%"]},{default:t(()=>[o("div",{innerHTML:a(he),class:"overflow-auto",style:Te("height:".concat(a(_)-100,"px"))},null,12,Ba)]),_:1},8,["modelValue"])])),[[k,a(g)]])]),_:1})]),_:1},8,["modelValue","onTabClick"])}}}),$a=el(La,[["__scopeId","data-v-e7d8217d"]]);export{$a as default};