mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-09-05 22:25:49 +08:00
fix: Resolving the Issue of Website Directory Not Migrated During OpenResty Reinstallation (#10185)
This commit is contained in:
parent
5c5904216b
commit
a875e1ec5c
11 changed files with 59 additions and 51 deletions
|
@ -7,7 +7,6 @@ import (
|
|||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
"strconv"
|
||||
|
@ -368,29 +367,6 @@ func (a AppService) Install(req request.AppInstallCreate) (appInstall *model.App
|
|||
}
|
||||
}
|
||||
}
|
||||
if app.Key == "openresty" && (app.Resource == "remote" || app.Resource == "custom") && common.CompareVersion(appDetail.Version, "1.27") {
|
||||
if dir, ok := req.Params["WEBSITE_DIR"]; ok {
|
||||
siteDir := dir.(string)
|
||||
if siteDir == "" || !strings.HasPrefix(siteDir, "/") {
|
||||
siteDir = path.Join(global.Dir.DataDir, dir.(string))
|
||||
}
|
||||
req.Params["WEBSITE_DIR"] = siteDir
|
||||
oldWebStePath, _ := settingRepo.GetValueByKey("WEBSITE_DIR")
|
||||
fileOp := files.NewFileOp()
|
||||
if oldWebStePath != "" && oldWebStePath != siteDir && fileOp.Stat(oldWebStePath) {
|
||||
_ = fileOp.Rename(oldWebStePath, siteDir)
|
||||
}
|
||||
if !fileOp.Stat(siteDir) {
|
||||
_ = fileOp.CreateDir(siteDir, constant.DirPerm)
|
||||
_ = fileOp.CreateDir(path.Join(siteDir, "conf.d"), constant.DirPerm)
|
||||
}
|
||||
err = settingRepo.UpdateOrCreate("WEBSITE_DIR", siteDir)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
go RestartPHPRuntime()
|
||||
}
|
||||
}
|
||||
for key := range req.Params {
|
||||
if !strings.Contains(key, "PANEL_APP_PORT") {
|
||||
continue
|
||||
|
@ -531,6 +507,9 @@ func (a AppService) Install(req request.AppInstallCreate) (appInstall *model.App
|
|||
return err
|
||||
}
|
||||
if app.Key == "openresty" {
|
||||
if err = handleSiteDir(app, appDetail, req, t); err != nil {
|
||||
return err
|
||||
}
|
||||
if err = handleOpenrestyFile(appInstall); err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -1934,6 +1934,53 @@ func getAppTags(appID uint, lang string) ([]response.TagDTO, error) {
|
|||
return res, nil
|
||||
}
|
||||
|
||||
func handleSiteDir(app model.App, appDetail model.AppDetail, req request.AppInstallCreate, t *task.Task) error {
|
||||
if app.Key == "openresty" && (app.Resource == "remote" || app.Resource == "custom") && common.CompareVersion(appDetail.Version, "1.27") {
|
||||
if dir, ok := req.Params["WEBSITE_DIR"]; ok {
|
||||
siteDir := dir.(string)
|
||||
if siteDir == "" || !strings.HasPrefix(siteDir, "/") {
|
||||
siteDir = path.Join(global.Dir.DataDir, dir.(string))
|
||||
}
|
||||
req.Params["WEBSITE_DIR"] = siteDir
|
||||
oldWebStePath, _ := settingRepo.GetValueByKey("WEBSITE_DIR")
|
||||
fileOp := files.NewFileOp()
|
||||
if oldWebStePath != "" && oldWebStePath != siteDir && fileOp.Stat(oldWebStePath) {
|
||||
t.Log(i18n.GetWithName("MoveSiteDir", siteDir))
|
||||
if fileOp.Stat(siteDir) {
|
||||
if fileOp.Stat(path.Join(siteDir, "conf.d")) {
|
||||
_ = fileOp.Rename(path.Join(siteDir, "conf.d"), path.Join(siteDir, "conf.d.bak"))
|
||||
}
|
||||
if fileOp.Stat(path.Join(siteDir, "sites")) {
|
||||
_ = fileOp.Rename(path.Join(siteDir, "sites"), path.Join(siteDir, "sites.bak"))
|
||||
}
|
||||
if err := fileOp.Rename(path.Join(oldWebStePath, "sites"), path.Join(siteDir, "sites")); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := fileOp.Rename(path.Join(oldWebStePath, "conf.d"), path.Join(siteDir, "conf.d")); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
err := fileOp.Rename(oldWebStePath, siteDir)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
t.Log(i18n.GetMsgByKey("MoveSiteDirSuccess"))
|
||||
}
|
||||
if !fileOp.Stat(siteDir) {
|
||||
_ = fileOp.CreateDir(siteDir, constant.DirPerm)
|
||||
_ = fileOp.CreateDir(path.Join(siteDir, "conf.d"), constant.DirPerm)
|
||||
}
|
||||
err := settingRepo.UpdateOrCreate("WEBSITE_DIR", siteDir)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
go RestartPHPRuntime()
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func handleOpenrestyFile(appInstall *model.AppInstall) error {
|
||||
websites, _ := websiteRepo.List()
|
||||
hasDefaultWebsite := false
|
||||
|
|
|
@ -79,9 +79,7 @@ AppStoreIsLastVersion: 'The App Store is already the latest version'
|
|||
AppStoreSyncSuccess: 'App Store synchronization successful'
|
||||
SyncAppDetail: 'Synchronize application configuration'
|
||||
AppVersionNotMatch: '{{ .name }} application requires a higher 1Panel version, skipping synchronization'
|
||||
MoveSiteDir: 'The current upgrade requires migration of the OpenResty website directory'
|
||||
MoveSiteToDir: 'Migrate site directory to {{ .name }}'
|
||||
ErrMoveSiteDir: 'Failed to migrate site directory'
|
||||
MoveSiteDir: "Detected website directory change. Need to migrate OpenResty website directory to {{ .name }}"
|
||||
MoveSiteDirSuccess: 'Successful migration of website directory'
|
||||
DeleteRuntimePHP: 'Delete PHP runtime'
|
||||
CustomAppStoreFileValid: 'App store packages need to be in .tar.gz format'
|
||||
|
|
|
@ -79,9 +79,7 @@ AppStoreIsLastVersion: 'App Store はすでに最新バージョンです'
|
|||
AppStoreSyncSuccess: 'App Store の同期が成功しました'
|
||||
SyncAppDetail: 'アプリケーション構成を同期する'
|
||||
AppVersionNotMatch: '{{ .name }} アプリケーションには、より高い 1Panel バージョンが必要なため、同期をスキップします'
|
||||
MoveSiteDir: '現在のアップグレードでは、OpenResty Web サイト ディレクトリの移行が必要です'
|
||||
MoveSiteToDir: 'サイト ディレクトリを {{ .name }} に移行します'
|
||||
ErrMoveSiteDir: 'サイト ディレクトリの移行に失敗しました'
|
||||
MoveSiteDir: "ウェブサイトディレクトリの変更を検出しました。OpenResty ウェブサイトディレクトリを {{ .name }} に移行する必要があります"
|
||||
MoveSiteDirSuccess: 'Web サイト ディレクトリの移行に成功しました'
|
||||
DeleteRuntimePHP: 'PHP ランタイムを削除する'
|
||||
CustomAppStoreFileValid: 'App Store パッケージは .tar.gz 形式である必要があります'
|
||||
|
|
|
@ -79,9 +79,7 @@ AppStoreIsLastVersion: '앱스토어가 이미 최신 버전입니다'
|
|||
AppStoreSyncSuccess: '앱스토어 동기화 성공'
|
||||
SyncAppDetail: '애플리케이션 구성 동기화'
|
||||
AppVersionNotMatch: '{{ .name }} 애플리케이션에 더 높은 1Panel 버전이 필요하므로 동기화를 건너뜁니다.'
|
||||
MoveSiteDir: '현재 업그레이드에는 OpenResty 웹사이트 디렉토리 마이그레이션이 필요합니다.'
|
||||
MoveSiteToDir: '사이트 디렉토리를 {{ .name }}로 마이그레이션'
|
||||
ErrMoveSiteDir: '사이트 디렉토리를 마이그레이션하지 못했습니다'
|
||||
MoveSiteDir: "웹사이트 디렉토리 변경이 감지되었습니다. OpenResty 웹사이트 디렉토리를 {{ .name }} 로 마이그레이션해야 합니다"
|
||||
MoveSiteDirSuccess: '웹사이트 디렉토리 마이그레이션 성공'
|
||||
DeleteRuntimePHP: 'PHP 런타임 삭제'
|
||||
CustomAppStoreFileValid: '앱 스토어 패키지는 .tar.gz 형식이어야 합니다.'
|
||||
|
|
|
@ -82,9 +82,7 @@ AppStoreIsLastVersion: 'App Store sudah pun versi terkini'
|
|||
AppStoreSyncSuccess: 'Penyegerakan App Store berjaya'
|
||||
SyncAppDetail: 'Segerakkan konfigurasi aplikasi'
|
||||
AppVersionNotMatch: 'Aplikasi {{ .name }} memerlukan versi 1Panel yang lebih tinggi, melangkau penyegerakan'
|
||||
MoveSiteDir: 'Peningkatan semasa memerlukan penghijrahan direktori tapak web OpenResty'
|
||||
MoveSiteToDir: 'Pindahkan direktori tapak ke {{ .name }}'
|
||||
ErrMoveSiteDir: 'Gagal memindahkan direktori tapak'
|
||||
MoveSiteDir: "Perubahan direktori laman web didapati. Perlu memindahkan direktori laman web OpenResty ke {{ .name }}"
|
||||
MoveSiteDirSuccess: 'Penghijrahan direktori tapak web yang berjaya'
|
||||
DeleteRuntimePHP: 'Padam masa jalan PHP'
|
||||
CustomAppStoreFileValid: 'Pakej gedung apl perlu dalam format .tar.gz'
|
||||
|
|
|
@ -82,9 +82,7 @@ AppStoreIsLastVersion: 'A App Store já é a versão mais recente'
|
|||
AppStoreSyncSuccess: 'Sincronização da App Store bem-sucedida'
|
||||
SyncAppDetail: 'Sincronizar configuração do aplicativo'
|
||||
AppVersionNotMatch: 'o aplicativo {{ .name }} requer uma versão superior do 1Panel, ignorando a sincronização'
|
||||
MoveSiteDir: 'A atualização atual requer a migração do diretório do site OpenResty'
|
||||
MoveSiteToDir: 'Migrar diretório do site para {{ .name }}'
|
||||
ErrMoveSiteDir: 'Falha ao migrar o diretório do site'
|
||||
MoveSiteDir: "Detecção de alteração no diretório do site. É necessário migrar o diretório do site OpenResty para {{ .name }}"
|
||||
MoveSiteDirSuccess: 'Migração bem-sucedida do diretório do site'
|
||||
DeleteRuntimePHP: 'Excluir tempo de execução do PHP'
|
||||
CustomAppStoreFileValid: 'Os pacotes da App Store precisam estar no formato .tar.gz'
|
||||
|
|
|
@ -82,9 +82,7 @@ AppStoreIsLastVersion: 'В App Store уже установлена послед
|
|||
AppStoreSyncSuccess: 'Синхронизация с App Store прошла успешно'
|
||||
SyncAppDetail: 'Синхронизировать конфигурацию приложения'
|
||||
AppVersionNotMatch: 'Приложению {{ .name }} требуется более высокая версия 1Panel, синхронизация пропускается'
|
||||
MoveSiteDir: 'Текущее обновление требует миграции каталога веб-сайта OpenResty'
|
||||
MoveSiteToDir: 'Перенести каталог сайта в {{ .name }}'
|
||||
ErrMoveSiteDir: 'Не удалось перенести каталог сайта'
|
||||
MoveSiteDir: "Обнаружено изменение каталога сайта. Необходимо перенести каталог сайта OpenResty в {{ .name }}"
|
||||
MoveSiteDirSuccess: 'Успешная миграция каталога веб-сайта'
|
||||
DeleteRuntimePHP: 'Удалить среду выполнения PHP'
|
||||
CustomAppStoreFileValid: 'Пакеты магазина приложений должны быть в формате .tar.gz'
|
||||
|
|
|
@ -82,9 +82,7 @@ AppStoreIsLastVersion: 'Uygulama Mağazası zaten en son sürüm'
|
|||
AppStoreSyncSuccess: 'Uygulama Mağazası senkronizasyonu başarılı'
|
||||
SyncAppDetail: 'Uygulama yapılandırmasını senkronize et'
|
||||
AppVersionNotMatch: '{{ .name }} uygulaması daha yüksek 1Panel sürümü gerektiriyor, senkronizasyon atlanıyor'
|
||||
MoveSiteDir: 'Mevcut yükseltme OpenResty web sitesi dizininin taşınmasını gerektiriyor'
|
||||
MoveSiteToDir: 'Site dizinini {{ .name }} konumuna taşı'
|
||||
ErrMoveSiteDir: 'Site dizini taşıma başarısız'
|
||||
MoveSiteDir: "Web sitesi dizini değişikliği tespit edildi. OpenResty web sitesi dizinini {{ .name }} adresine taşımak gerekiyor"
|
||||
MoveSiteDirSuccess: 'Web sitesi dizini taşıma başarılı'
|
||||
DeleteRuntimePHP: 'PHP çalışma zamanını sil'
|
||||
CustomAppStoreFileValid: 'Uygulama mağazası paketlerinin .tar.gz formatında olması gerekiyor'
|
||||
|
|
|
@ -78,9 +78,7 @@ PullImageSuccess: '鏡像拉取成功'
|
|||
AppStoreSyncSuccess: '應用程式商店同步成功'
|
||||
SyncAppDetail: '同步應用程式設定'
|
||||
AppVersionNotMatch: '{{ .name }} 應用程式需要更高的 1Panel 版本,跳過同步'
|
||||
MoveSiteDir: '目前升級需要遷移 OpenResty 網站目錄'
|
||||
MoveSiteToDir: '遷移網站目錄到{{ .name }}'
|
||||
ErrMoveSiteDir: '遷移網站目錄失敗'
|
||||
MoveSiteDir: "檢測到網站目錄變更 需要遷移 OpenResty 網站目錄到 {{ .name }}"
|
||||
MoveSiteDirSuccess: '遷移網站目錄成功'
|
||||
DeleteRuntimePHP: '刪除PHP 執行環境'
|
||||
CustomAppStoreFileValid: '應用程式商店包需要 .tar.gz 格式'
|
||||
|
|
|
@ -78,9 +78,7 @@ PullImageSuccess: "镜像拉取成功"
|
|||
AppStoreSyncSuccess: "应用商店同步成功"
|
||||
SyncAppDetail: "同步应用配置"
|
||||
AppVersionNotMatch: "{{ .name }} 应用需要更高的 1Panel 版本,跳过"
|
||||
MoveSiteDir: "当前升级需要迁移 OpenResty 网站目录"
|
||||
MoveSiteToDir: "迁移网站目录到 {{ .name }}"
|
||||
ErrMoveSiteDir: "迁移网站目录失败"
|
||||
MoveSiteDir: "检测到网站目录变更 需要迁移 OpenResty 网站目录到 {{ .name }}"
|
||||
MoveSiteDirSuccess: "迁移网站目录成功"
|
||||
DeleteRuntimePHP: "删除 PHP 运行环境"
|
||||
CustomAppStoreFileValid: "应用商店包需要 .tar.gz 格式"
|
||||
|
|
Loading…
Add table
Reference in a new issue