From 98fd2f614acd7be78c97042d9ace20a93942ecd7 Mon Sep 17 00:00:00 2001 From: zhengkunwang223 Date: Mon, 26 Dec 2022 11:42:37 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E7=BD=91=E7=AB=99?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E5=92=8C=E9=94=99=E8=AF=AF=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/dto/response/website.go | 2 + backend/app/service/app_utils.go | 10 ++-- backend/app/service/website.go | 8 +++ backend/app/service/website_utils.go | 4 ++ backend/constant/dir.go | 1 - cmd/server/nginx_conf/website_default.conf | 1 + frontend/src/api/interface/website.ts | 5 ++ frontend/src/api/modules/website.ts | 2 +- frontend/src/lang/modules/zh.ts | 6 ++- .../host/file-management/detail/index.vue | 1 - .../views/website/website/config/index.vue | 4 ++ .../website/website/config/log/index.vue | 46 ++++++++++++++++ .../website/config/log/log-fiile/index.vue | 53 +++++++++++++++++++ 13 files changed, 134 insertions(+), 9 deletions(-) create mode 100644 frontend/src/views/website/website/config/log/index.vue create mode 100644 frontend/src/views/website/website/config/log/log-fiile/index.vue diff --git a/backend/app/dto/response/website.go b/backend/app/dto/response/website.go index 240164809..f8da1e74e 100644 --- a/backend/app/dto/response/website.go +++ b/backend/app/dto/response/website.go @@ -6,6 +6,8 @@ import ( type WebsiteDTO struct { model.Website + ErrorLogPath string `json:"errorLogPath"` + AccessLogPath string `json:"accessLogPath"` } type WebsitePreInstallCheck struct { diff --git a/backend/app/service/app_utils.go b/backend/app/service/app_utils.go index 930d1e0b7..1ae5c6e96 100644 --- a/backend/app/service/app_utils.go +++ b/backend/app/service/app_utils.go @@ -109,11 +109,13 @@ func createLink(ctx context.Context, app model.App, appInstall *model.AppInstall if err := json.Unmarshal(paramByte, &authParam); err != nil { return err } - authByte, err := json.Marshal(authParam) - if err != nil { - return err + if authParam.RootPassword != "" { + authByte, err := json.Marshal(authParam) + if err != nil { + return err + } + appInstall.Param = string(authByte) } - appInstall.Param = string(authByte) } if app.Type == "website" { paramByte, err := json.Marshal(params) diff --git a/backend/app/service/website.go b/backend/app/service/website.go index 675a4f678..7c7f56557 100644 --- a/backend/app/service/website.go +++ b/backend/app/service/website.go @@ -252,6 +252,14 @@ func (w WebsiteService) GetWebsite(id uint) (response.WebsiteDTO, error) { return res, err } res.Website = website + + nginxInstall, err := getAppInstallByKey(constant.AppNginx) + if err != nil { + return res, err + } + sitePath := path.Join(constant.AppInstallDir, constant.AppNginx, nginxInstall.Name, "www", "sites", website.Alias) + res.ErrorLogPath = path.Join(sitePath, "log", "error.log") + res.AccessLogPath = path.Join(sitePath, "log", "access.log") return res, nil } diff --git a/backend/app/service/website_utils.go b/backend/app/service/website_utils.go index 27b44d4f3..c4e77f129 100644 --- a/backend/app/service/website_utils.go +++ b/backend/app/service/website_utils.go @@ -87,6 +87,9 @@ func createWebsiteFolder(nginxInstall model.AppInstall, website *model.Website) if err := fileOp.CreateFile(path.Join(siteFolder, "log", "access.log")); err != nil { return err } + if err := fileOp.CreateFile(path.Join(siteFolder, "log", "error.log")); err != nil { + return err + } if err := fileOp.CreateDir(path.Join(siteFolder, "index"), 0755); err != nil { return err } @@ -130,6 +133,7 @@ func configDefaultNginx(website *model.Website, domains []model.WebsiteDomain, a siteFolder := path.Join("/www", "sites", website.Alias) commonFolder := path.Join("/www", "common") server.UpdateDirective("access_log", []string{path.Join(siteFolder, "log", "access.log")}) + server.UpdateDirective("error_log", []string{path.Join(siteFolder, "log", "error.log")}) server.UpdateDirective("access_by_lua_file", []string{path.Join(commonFolder, "waf", "access.lua")}) server.UpdateDirective("set", []string{"$RulePath", path.Join(siteFolder, "waf", "rules")}) server.UpdateDirective("set", []string{"$logdir", path.Join(siteFolder, "log")}) diff --git a/backend/constant/dir.go b/backend/constant/dir.go index d82c1571b..7100e88f0 100644 --- a/backend/constant/dir.go +++ b/backend/constant/dir.go @@ -6,7 +6,6 @@ import ( var ( DefaultDataDir = "/opt/1Panel/data" - LogDir = "opt/1Panel/log" ResourceDir = path.Join(DefaultDataDir, "resource") AppResourceDir = path.Join(ResourceDir, "apps") AppInstallDir = path.Join(DefaultDataDir, "apps") diff --git a/cmd/server/nginx_conf/website_default.conf b/cmd/server/nginx_conf/website_default.conf index dc73ebdbf..d73b00817 100644 --- a/cmd/server/nginx_conf/website_default.conf +++ b/cmd/server/nginx_conf/website_default.conf @@ -14,6 +14,7 @@ server { access_log /www/sites/domain/log/access.log; + error_log /www/sites/domain/log/error.log; access_by_lua_file /www/common/waf/access.lua; set $RulePath /www/sites/domain/waf/rules; diff --git a/frontend/src/api/interface/website.ts b/frontend/src/api/interface/website.ts index c6847cb67..887624be4 100644 --- a/frontend/src/api/interface/website.ts +++ b/frontend/src/api/interface/website.ts @@ -15,6 +15,11 @@ export namespace Website { webSiteSSL: SSL; } + export interface WebsiteDTO extends Website { + errorLogPath: string; + accessLogPath: string; + } + export interface NewAppInstall { name: string; appDetailId: number; diff --git a/frontend/src/api/modules/website.ts b/frontend/src/api/modules/website.ts index 552b13cdd..db0568004 100644 --- a/frontend/src/api/modules/website.ts +++ b/frontend/src/api/modules/website.ts @@ -28,7 +28,7 @@ export const UpdateWebsite = (req: Website.WebSiteUpdateReq) => { }; export const GetWebsite = (id: number) => { - return http.get(`/websites/${id}`); + return http.get(`/websites/${id}`); }; export const GetWebsiteOptions = () => { diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index b6082fde0..0610f3953 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -867,7 +867,7 @@ export default { nginxConfig: 'Nginx配置', websiteConfig: '网站设置', basic: '基本', - source: '源文', + source: '配置文件', security: '安全', backup: '备份', log: '日志', @@ -894,7 +894,7 @@ export default { forceDeleteHelper: '强制删除,会忽略删除过程中产生的错误并最终删除元数据', deleteAppHelper: '同时删除关联应用以及应用备份', deleteBackupHelper: '同时删除网站备份', - deleteConfirmHelper: '删除操作无法回滚,请输入 "{0}" 删除此网站', + deleteConfirmHelper: '删除操作无法回滚,请输入 "{0}" 删除', staticPath: '对应主目录:', limit: '限制方案', blog: '论坛/博客', @@ -904,6 +904,8 @@ export default { doorSite: '门户', qiteSite: '企业', videoSite: '视频', + errLog: '错误日志', + accessLog: '网站日志', }, nginx: { serverNamesHashBucketSizeHelper: '服务器名字的hash表大小', diff --git a/frontend/src/views/host/file-management/detail/index.vue b/frontend/src/views/host/file-management/detail/index.vue index ce0777e9f..66098e53c 100644 --- a/frontend/src/views/host/file-management/detail/index.vue +++ b/frontend/src/views/host/file-management/detail/index.vue @@ -39,7 +39,6 @@ const acceptParams = async (params: InfoProps): Promise => { props.value = params; GetFileContent({ path: params.path, expand: false, page: 1, pageSize: 1 }).then((res) => { data.value = res.data; - console.log(data.value); open.value = true; }); }; diff --git a/frontend/src/views/website/website/config/index.vue b/frontend/src/views/website/website/config/index.vue index 16f8b745a..25f19aec2 100644 --- a/frontend/src/views/website/website/config/index.vue +++ b/frontend/src/views/website/website/config/index.vue @@ -8,6 +8,9 @@ + + + @@ -22,6 +25,7 @@ import { onMounted, ref } from 'vue'; import Basic from './basic/index.vue'; import Safety from './safety/index.vue'; import Resource from './resource/index.vue'; +import Log from './log/index.vue'; import router from '@/routers'; const props = defineProps({ diff --git a/frontend/src/views/website/website/config/log/index.vue b/frontend/src/views/website/website/config/log/index.vue new file mode 100644 index 000000000..6e99f3a00 --- /dev/null +++ b/frontend/src/views/website/website/config/log/index.vue @@ -0,0 +1,46 @@ + + + diff --git a/frontend/src/views/website/website/config/log/log-fiile/index.vue b/frontend/src/views/website/website/config/log/log-fiile/index.vue new file mode 100644 index 000000000..a1f6254d4 --- /dev/null +++ b/frontend/src/views/website/website/config/log/log-fiile/index.vue @@ -0,0 +1,53 @@ + +