mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 07:57:21 +08:00
feat(php): 添加 phpinfo() 快捷按钮功能 (#1226)
* Initial plan
* feat(php): 添加 phpinfo() 快捷按钮功能
- 后端:添加 PHPInfo 服务方法调用 php -r "phpinfo();"
- 后端:添加 /environment/php/{version}/phpinfo 路由
- 前端:添加 phpinfo API 调用
- 前端:在 PHP 运行状态页面添加"查看 PHPInfo"按钮
- 前端:添加弹窗展示 phpinfo 输出内容
- 添加中英文及繁体中文翻译
Co-authored-by: devhaozi <115467771+devhaozi@users.noreply.github.com>
* fix: 添加 phpinfo 请求的错误处理
添加错误回调函数,在请求失败时关闭弹窗并显示错误提示
Co-authored-by: devhaozi <115467771+devhaozi@users.noreply.github.com>
* fix: 使用 php-cgi 输出 HTML 格式的 phpinfo
- 后端:使用 php-cgi -q 执行 phpinfo 获取 HTML 格式输出
- 前端:使用 v-html 渲染 HTML 内容
- 前端:移除不必要的 onError 处理
- 前端:优化 phpinfo HTML 样式
Co-authored-by: devhaozi <115467771+devhaozi@users.noreply.github.com>
* feat: PHP支持查看phpinfo
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: devhaozi <115467771+devhaozi@users.noreply.github.com>
Co-authored-by: 耗子 <haozi@loli.email>
This commit is contained in:
@@ -298,6 +298,7 @@ func (route *Http) Register(r *chi.Mux) {
|
||||
r.Get("/is_installed", route.environment.IsInstalled)
|
||||
r.Route("/php", func(r chi.Router) {
|
||||
r.Post("/{version}/set_cli", route.environmentPHP.SetCli)
|
||||
r.Get("/{version}/phpinfo", route.environmentPHP.PHPInfo)
|
||||
r.Get("/{version}/config", route.environmentPHP.GetConfig)
|
||||
r.Post("/{version}/config", route.environmentPHP.UpdateConfig)
|
||||
r.Get("/{version}/fpm_config", route.environmentPHP.GetFPMConfig)
|
||||
|
||||
@@ -56,6 +56,27 @@ func (s *EnvironmentPHPService) SetCli(w http.ResponseWriter, r *http.Request) {
|
||||
Success(w, nil)
|
||||
}
|
||||
|
||||
func (s *EnvironmentPHPService) PHPInfo(w http.ResponseWriter, r *http.Request) {
|
||||
req, err := Bind[request.EnvironmentPHPVersion](r)
|
||||
if err != nil {
|
||||
Error(w, http.StatusUnprocessableEntity, "%v", err)
|
||||
return
|
||||
}
|
||||
if !s.environmentRepo.IsInstalled("php", fmt.Sprintf("%d", req.Version)) {
|
||||
Error(w, http.StatusUnprocessableEntity, s.t.Get("PHP-%d is not installed", req.Version))
|
||||
return
|
||||
}
|
||||
|
||||
// 使用 php-cgi 执行 phpinfo() 获取 HTML 格式输出
|
||||
output, err := shell.Execf("echo '<?php phpinfo();' | %s/server/php/%d/bin/php-cgi -q", app.Root, req.Version)
|
||||
if err != nil {
|
||||
Error(w, http.StatusInternalServerError, "%v", err)
|
||||
return
|
||||
}
|
||||
|
||||
Success(w, output)
|
||||
}
|
||||
|
||||
func (s *EnvironmentPHPService) GetConfig(w http.ResponseWriter, r *http.Request) {
|
||||
req, err := Bind[request.EnvironmentPHPVersion](r)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user