diff --git a/agent/app/service/website.go b/agent/app/service/website.go index 8b6d93f85..49d8f7447 100644 --- a/agent/app/service/website.go +++ b/agent/app/service/website.go @@ -1368,8 +1368,11 @@ func (w WebsiteService) ChangePHPVersion(req request.WebsitePHPVersionReq) error return errors.New("nginx config is not valid") } server := servers[0] - + fileOp := files.NewFileOp() + indexPHPPath := path.Join(GetSitePath(website, SiteIndexDir), "index.php") + indexHtmlPath := path.Join(GetSitePath(website, SiteIndexDir), "index.html") if req.RuntimeID > 0 { + server.UpdateDirective("index", []string{"index.php index.html index.htm default.php default.htm default.html"}) server.RemoveDirective("location", []string{"~", "[^/]\\.php(/|$)"}) runtime, err := runtimeRepo.GetFirst(repo.WithByID(req.RuntimeID)) if err != nil { @@ -1383,11 +1386,18 @@ func (w WebsiteService) ChangePHPVersion(req request.WebsitePHPVersionReq) error website.Proxy = phpProxy server.UpdatePHPProxy([]string{website.Proxy}, "") website.Type = constant.Runtime + if !fileOp.Stat(indexPHPPath) { + _ = fileOp.WriteFile(indexPHPPath, strings.NewReader(string(nginx_conf.IndexPHP)), constant.FilePerm) + } } else { + server.UpdateDirective("index", []string{"index.html index.php index.htm default.php default.htm default.html"}) website.RuntimeID = 0 website.Type = constant.Static website.Proxy = "" server.RemoveDirective("location", []string{"~", "[^/]\\.php(/|$)"}) + if !fileOp.Stat(indexHtmlPath) { + _ = fileOp.WriteFile(indexHtmlPath, strings.NewReader(string(nginx_conf.Index)), constant.FilePerm) + } } config.FilePath = configPath diff --git a/agent/app/service/website_utils.go b/agent/app/service/website_utils.go index 7159c7e68..51832ad00 100644 --- a/agent/app/service/website_utils.go +++ b/agent/app/service/website_utils.go @@ -862,7 +862,7 @@ func opWebsite(website *model.Website, operate string) error { website.Status = constant.WebRunning now := time.Now() if website.ExpireDate.Before(now) { - defaultDate, _ := time.Parse(constant.DateLayout, constant.DefaultDate) + defaultDate, _ := time.Parse(constant.DateLayout, constant.WebsiteDefaultExpireDate) website.ExpireDate = defaultDate } } diff --git a/agent/constant/common.go b/agent/constant/common.go index aec525f66..85f2e23dd 100644 --- a/agent/constant/common.go +++ b/agent/constant/common.go @@ -23,8 +23,7 @@ const ( TimeOut20s = 20 TimeOut5m = 300 - DateLayout = "2006-01-02" // or use time.DateOnly while go version >= 1.20 - DefaultDate = "1970-01-01" + DateLayout = "2006-01-02" // or use time.DateOnly while go version >= 1.20 DateTimeLayout = "2006-01-02 15:04:05" // or use time.DateTime while go version >= 1.20 DateTimeSlimLayout = "20060102150405" WebsiteDefaultExpireDate = "9999-12-31" diff --git a/agent/cron/job/website.go b/agent/cron/job/website.go index f0821e111..dffbff6fd 100644 --- a/agent/cron/job/website.go +++ b/agent/cron/job/website.go @@ -25,7 +25,7 @@ func (w *website) Run() { global.LOG.Info("Website scheduled task in progress ...") now := time.Now().Add(10 * time.Minute) if len(websites) > 0 { - neverExpireDate, _ := time.Parse(constant.DateLayout, constant.DefaultDate) + neverExpireDate, _ := time.Parse(constant.DateLayout, constant.WebsiteDefaultExpireDate) var wg sync.WaitGroup for _, site := range websites { if site.Status != constant.WebRunning || neverExpireDate.Equal(site.ExpireDate) { diff --git a/frontend/src/views/website/website/index.vue b/frontend/src/views/website/website/index.vue index 2730fd1ce..f0b12fead 100644 --- a/frontend/src/views/website/website/index.vue +++ b/frontend/src/views/website/website/index.vue @@ -152,11 +152,11 @@ /> - +