From d4def44545e24a67946ad8d979879dc4cc704d97 Mon Sep 17 00:00:00 2001 From: zhengkunwang <31820853+zhengkunwang223@users.noreply.github.com> Date: Fri, 8 Dec 2023 16:04:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E7=BD=91=E7=AB=99=20P?= =?UTF-8?q?HP=20=E7=89=88=E6=9C=AC=E5=88=87=E6=8D=A2=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=20(#3228)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/service/website.go | 20 +++++++++++++++++++- backend/app/service/website_utils.go | 6 ++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/backend/app/service/website.go b/backend/app/service/website.go index bc598c4d1..5ad8f8c02 100644 --- a/backend/app/service/website.go +++ b/backend/app/service/website.go @@ -9,6 +9,7 @@ import ( "encoding/pem" "errors" "fmt" + "github.com/1Panel-dev/1Panel/backend/utils/common" "os" "path" "reflect" @@ -1247,6 +1248,7 @@ func (w WebsiteService) ChangePHPVersion(req request.WebsitePHPVersionReq) error phpDir = path.Join(constant.RuntimeDir, runtime.Type, runtime.Name, "php") oldFmContent, _ = fileOp.GetContent(fpmConfDir) newComposeByte []byte + supervisorDir = path.Join(appInstall.GetPath(), "supervisor") ) envParams := make(map[string]string, len(envs)) handleMap(envs, envParams) @@ -1267,7 +1269,7 @@ func (w WebsiteService) ChangePHPVersion(req request.WebsitePHPVersionReq) error return busErr } - newComposeByte, busErr = changeServiceName(composePath, appInstall.ServiceName) + newComposeByte, busErr = changeServiceName(appDetail.DockerCompose, appInstall.ServiceName) if busErr != nil { return err } @@ -1288,6 +1290,22 @@ func (w WebsiteService) ChangePHPVersion(req request.WebsitePHPVersionReq) error return busErr } } + if common.CompareVersion(appDetail.Version, "7.0") && !fileOp.Stat(supervisorDir) { + if appDetail.Update { + app, err := appRepo.GetFirst(commonRepo.WithByID(appDetail.AppId)) + if err != nil { + busErr = err + return busErr + } + if busErr = downloadApp(app, appDetail, nil); err != nil { + return busErr + } + } + if busErr = fileOp.CopyDir(path.Join(phpDir, "supervisor"), appInstall.GetPath()); err != nil { + return busErr + } + } + if out, err := compose.Up(appInstall.GetComposePath()); err != nil { if out != "" { busErr = errors.New(out) diff --git a/backend/app/service/website_utils.go b/backend/app/service/website_utils.go index 8d935dab6..83106f902 100644 --- a/backend/app/service/website_utils.go +++ b/backend/app/service/website_utils.go @@ -651,11 +651,9 @@ func chownRootDir(path string) error { return nil } -func changeServiceName(composePath, newServiceName string) (composeByte []byte, err error) { +func changeServiceName(newComposeContent, newServiceName string) (composeByte []byte, err error) { composeMap := make(map[string]interface{}) - fileOp := files.NewFileOp() - composeContent, _ := fileOp.GetContent(composePath) - if err = yaml.Unmarshal(composeContent, &composeMap); err != nil { + if err = yaml.Unmarshal([]byte(newComposeContent), &composeMap); err != nil { return } value, ok := composeMap["services"]