mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 18:27:13 +08:00
382 lines
12 KiB
HTML
382 lines
12 KiB
HTML
<!--
|
||
Name: PHP管理器
|
||
Author: 耗子
|
||
Date: 2023-07-22
|
||
-->
|
||
<title>PHP-8.2</title>
|
||
<div class="layui-fluid" id="component-tabs">
|
||
<div class="layui-row">
|
||
<div class="layui-col-md12">
|
||
<div class="layui-card">
|
||
<div class="layui-card-header">PHP-8.2管理</div>
|
||
<div class="layui-card-body">
|
||
<div class="layui-tab">
|
||
<ul class="layui-tab-title">
|
||
<li class="layui-this">运行状态</li>
|
||
<li>拓展管理</li>
|
||
<li>配置修改</li>
|
||
<li>负载状态</li>
|
||
<li>运行日志</li>
|
||
<li>慢日志</li>
|
||
</ul>
|
||
<div class="layui-tab-content">
|
||
<div class="layui-tab-item layui-show">
|
||
<blockquote id="php82-status" class="layui-elem-quote layui-quote-nm">当前状态:<span
|
||
class="layui-badge layui-bg-black">获取中</span></blockquote>
|
||
<div class="layui-btn-container" style="padding-top: 30px;">
|
||
<button id="php82-start" class="layui-btn">启动</button>
|
||
<button id="php82-stop" class="layui-btn layui-btn-danger">停止</button>
|
||
<button id="php82-restart" class="layui-btn layui-btn-warm">重启</button>
|
||
<button id="php82-reload" class="layui-btn layui-btn-normal">重载</button>
|
||
</div>
|
||
</div>
|
||
<div class="layui-tab-item">
|
||
<table id="php82-extension" lay-filter="php82-extension"></table>
|
||
<!-- 操作按钮模板 -->
|
||
<script type="text/html" id="php82-extension-control">
|
||
{{# if(d.installed == true){ }}
|
||
<a class="layui-btn layui-btn-warm layui-btn-xs" lay-event="uninstall">卸载</a>
|
||
{{# } else{ }}
|
||
<a class="layui-btn layui-btn-xs" lay-event="install">安装</a>
|
||
{{# } }}
|
||
</script>
|
||
</div>
|
||
<div class="layui-tab-item">
|
||
<blockquote class="layui-elem-quote">此处修改的是PHP主配置文件,如果你不了解各参数的含义,请不要随意修改!<br>
|
||
提示:Ctrl+F 搜索关键字,Ctrl+S 保存,Ctrl+H 查找替换!
|
||
</blockquote>
|
||
<div id="php82-config-editor"
|
||
style="height: 600px;"></div>
|
||
<div class="layui-btn-container" style="padding-top: 30px;">
|
||
<button id="php82-config-save" class="layui-btn">保存</button>
|
||
</div>
|
||
</div>
|
||
<div class="layui-tab-item">
|
||
<table class="layui-hide" id="php82-load-status"></table>
|
||
</div>
|
||
<div class="layui-tab-item">
|
||
<div class="layui-btn-container">
|
||
<button id="php82-clean-error-log" class="layui-btn">清空日志</button>
|
||
</div>
|
||
<pre id="php82-error-log" class="layui-code">
|
||
获取中...
|
||
</pre>
|
||
</div>
|
||
<div class="layui-tab-item">
|
||
<div class="layui-btn-container">
|
||
<button id="php82-clean-slow-log" class="layui-btn">清空日志</button>
|
||
</div>
|
||
<pre id="php82-slow-log" class="layui-code">
|
||
获取中...
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<script>
|
||
let php82_config_editor;
|
||
layui.use(['index', 'code', 'table'], function () {
|
||
let $ = layui.$
|
||
, admin = layui.admin
|
||
, element = layui.element
|
||
, code = layui.code
|
||
, table = layui.table;
|
||
|
||
// 获取php82运行状态并渲染
|
||
admin.req({
|
||
url: "/api/plugins/php82/status"
|
||
, type: 'get'
|
||
, success: function (result) {
|
||
if (result.code !== 0) {
|
||
console.log('耗子Linux面板:PHP运行状态获取失败,接口返回' + result);
|
||
return false;
|
||
}
|
||
if (result.data) {
|
||
$('#php82-status').html('当前状态:<span class="layui-badge layui-bg-green">运行中</span>');
|
||
} else {
|
||
$('#php82-status').html('当前状态:<span class="layui-badge layui-bg-red">已停止</span>');
|
||
}
|
||
|
||
}
|
||
});
|
||
|
||
// 获取php82错误日志并渲染
|
||
admin.req({
|
||
url: "/api/plugins/php82/errorLog"
|
||
, type: 'get'
|
||
, success: function (result) {
|
||
if (result.code !== 0) {
|
||
$('#php82-error-log').text('PHP日志获取失败,请刷新重试!');
|
||
code({
|
||
elem: '#php82-error-log'
|
||
, title: 'php-fpm.log'
|
||
, encode: true
|
||
, about: false
|
||
|
||
});
|
||
return false;
|
||
}
|
||
$('#php82-error-log').text(result.data);
|
||
code({
|
||
elem: '#php82-error-log'
|
||
, title: 'php-fpm.log'
|
||
, encode: true
|
||
, about: false
|
||
|
||
});
|
||
}
|
||
});
|
||
|
||
// 获取php82慢日志并渲染
|
||
admin.req({
|
||
url: "/api/plugins/php82/slowLog"
|
||
, type: 'get'
|
||
, success: function (result) {
|
||
if (result.code !== 0) {
|
||
$('#php82-slow-log').text('PHP慢日志获取失败,请刷新重试!');
|
||
code({
|
||
elem: '#php82-slow-log'
|
||
, title: 'slow.log'
|
||
, encode: true
|
||
, about: false
|
||
|
||
});
|
||
return false;
|
||
}
|
||
$('#php82-slow-log').text(result.data);
|
||
code({
|
||
elem: '#php82-slow-log'
|
||
, title: 'slow.log'
|
||
, encode: true
|
||
, about: false
|
||
|
||
});
|
||
}
|
||
});
|
||
|
||
// 获取php82配置并渲染
|
||
admin.req({
|
||
url: "/api/plugins/php82/config"
|
||
, type: 'get'
|
||
, success: function (result) {
|
||
if (result.code !== 0) {
|
||
console.log('耗子Linux面板:PHP主配置获取失败,接口返回' + result);
|
||
return false;
|
||
}
|
||
$('#php82-config-editor').text(result.data);
|
||
php82_config_editor = ace.edit("php82-config-editor", {
|
||
mode: "ace/mode/ini",
|
||
selectionStyle: "text"
|
||
});
|
||
}
|
||
});
|
||
|
||
// 获取php82负载状态并渲染
|
||
table.render({
|
||
elem: '#php82-load-status'
|
||
, url: '/api/plugins/php82/load'
|
||
, cols: [[
|
||
{field: 'name', width: '82%', title: '属性',}
|
||
, {field: 'value', width: '20%', title: '当前值'}
|
||
]]
|
||
});
|
||
element.render();
|
||
|
||
// 获取php82扩展并渲染
|
||
table.render({
|
||
elem: '#php82-extension'
|
||
, url: '/api/plugins/php82/extensions'
|
||
, cols: [[
|
||
{field: 'slug', hide: true, title: 'Slug', sort: true}
|
||
, {field: 'name', width: '20%', title: '拓展名'}
|
||
, {field: 'description', width: '70%', title: '描述'}
|
||
, {
|
||
field: 'control',
|
||
title: '操作',
|
||
templet: '#php82-extension-control',
|
||
fixed: 'right',
|
||
align: 'left'
|
||
}
|
||
]]
|
||
, page: false
|
||
, text: {
|
||
none: '暂无拓展'
|
||
}
|
||
});
|
||
// 工具条
|
||
table.on('tool(php82-extension)', function (obj) {
|
||
let data = obj.data;
|
||
if (obj.event === 'install') {
|
||
layer.confirm('确定安装该拓展吗?', function (index) {
|
||
layer.close(index);
|
||
index = layer.msg('请稍后...', {icon: 16, time: 0});
|
||
admin.req({
|
||
url: '/api/plugins/php82/installExtension',
|
||
type: 'POST',
|
||
data: {
|
||
slug: data.slug
|
||
}
|
||
, success: function (res) {
|
||
if (res.code === 0) {
|
||
layer.close(index);
|
||
table.reload('php82-extension');
|
||
layer.msg('安装:' + data.name + ' 成功加入任务队列', {
|
||
icon: 1,
|
||
time: 1000
|
||
});
|
||
} else {
|
||
layer.msg(res.msg, {icon: 2, time: 1000});
|
||
}
|
||
}
|
||
});
|
||
});
|
||
} else if (obj.event === 'uninstall') {
|
||
layer.confirm('确定卸载该拓展吗?', function (index) {
|
||
layer.close(index);
|
||
index = layer.msg('请稍后...', {icon: 16, time: 0});
|
||
admin.req({
|
||
url: '/api/plugins/php82/uninstallExtension',
|
||
type: 'POST',
|
||
data: {
|
||
slug: data.slug
|
||
}
|
||
, success: function (res) {
|
||
layer.close(index);
|
||
if (res.code === 0) {
|
||
table.reload('php82-extension');
|
||
layer.msg('卸载:' + data.name + ' 成功加入任务队列', {icon: 1, time: 1000});
|
||
} else {
|
||
layer.msg(res.msg, {icon: 2, time: 1000});
|
||
}
|
||
}
|
||
});
|
||
});
|
||
}
|
||
});
|
||
|
||
// 事件监听
|
||
$('#php82-start').click(function () {
|
||
index = layer.msg('正在启动PHP,请稍后...', {icon: 16, time: 0});
|
||
layer.confirm('确定要启动PHP吗?', {
|
||
btn: ['启动', '取消']
|
||
}, function () {
|
||
admin.req({
|
||
url: "/api/plugins/php82/start"
|
||
, type: 'post'
|
||
, success: function (result) {
|
||
layer.close(index);
|
||
if (result.code !== 0) {
|
||
return false;
|
||
}
|
||
admin.events.refresh();
|
||
layer.alert('PHP启动成功!');
|
||
}
|
||
});
|
||
});
|
||
});
|
||
$('#php82-stop').click(function () {
|
||
layer.confirm('停止PHP将导致使用PHP的网站无法访问,是否继续停止?', {
|
||
btn: ['停止', '取消']
|
||
}, function () {
|
||
index = layer.msg('正在停止PHP,请稍后...', {icon: 16, time: 0});
|
||
admin.req({
|
||
url: "/api/plugins/php82/stop"
|
||
, type: 'post'
|
||
, success: function (result) {
|
||
layer.close(index);
|
||
if (result.code !== 0) {
|
||
return false;
|
||
}
|
||
admin.events.refresh();
|
||
layer.alert('PHP停止成功!');
|
||
}
|
||
});
|
||
});
|
||
});
|
||
$('#php82-restart').click(function () {
|
||
layer.confirm('重启PHP将导致使用PHP的网站短时间无法访问,是否继续重启?', {
|
||
btn: ['重启', '取消']
|
||
}, function () {
|
||
index = layer.msg('正在重启PHP,请稍后...', {icon: 16, time: 0});
|
||
admin.req({
|
||
url: "/api/plugins/php82/restart"
|
||
, type: 'post'
|
||
, success: function (result) {
|
||
layer.close(index);
|
||
if (result.code !== 0) {
|
||
return false;
|
||
}
|
||
admin.events.refresh();
|
||
layer.alert('PHP重启成功!');
|
||
}
|
||
});
|
||
});
|
||
});
|
||
$('#php82-reload').click(function () {
|
||
index = layer.msg('正在重载PHP,请稍后...', {icon: 16, time: 0});
|
||
admin.req({
|
||
url: "/api/plugins/php82/reload"
|
||
, type: 'post'
|
||
, success: function (result) {
|
||
layer.close(index);
|
||
if (result.code !== 0) {
|
||
return false;
|
||
}
|
||
layer.alert('PHP重载成功!');
|
||
}
|
||
});
|
||
});
|
||
$('#php82-config-save').click(function () {
|
||
index = layer.msg('正在保存配置,请稍后...', {icon: 16, time: 0});
|
||
admin.req({
|
||
url: "/api/plugins/php82/config"
|
||
, type: 'post'
|
||
, data: {
|
||
config: php82_config_editor.getValue()
|
||
}
|
||
, success: function (result) {
|
||
layer.close(index);
|
||
if (result.code !== 0) {
|
||
return false;
|
||
}
|
||
layer.alert('PHP配置保存成功!');
|
||
}
|
||
});
|
||
});
|
||
$('#php82-clean-error-log').click(function () {
|
||
index = layer.msg('正在清空错误日志,请稍后...', {icon: 16, time: 0});
|
||
admin.req({
|
||
url: "/api/plugins/php82/clearErrorLog"
|
||
, type: 'post'
|
||
, success: function (result) {
|
||
layer.close(index);
|
||
if (result.code !== 0) {
|
||
return false;
|
||
}
|
||
admin.events.refresh();
|
||
layer.msg('PHP日志已清空!');
|
||
}
|
||
});
|
||
});
|
||
$('#php82-clean-slow-log').click(function () {
|
||
index = layer.msg('正在清空慢日志,请稍后...', {icon: 16, time: 0});
|
||
admin.req({
|
||
url: "/api/plugins/php82/clearSlowLog"
|
||
, type: 'post'
|
||
, success: function (result) {
|
||
if (result.code !== 0) {
|
||
return false;
|
||
}
|
||
admin.events.refresh();
|
||
layer.msg('PHP慢日志已清空!');
|
||
}
|
||
});
|
||
});
|
||
});
|
||
</script>
|