diff --git a/agent/app/service/runtime_utils.go b/agent/app/service/runtime_utils.go index 5b73891dd..2c44e19c1 100644 --- a/agent/app/service/runtime_utils.go +++ b/agent/app/service/runtime_utils.go @@ -689,9 +689,15 @@ func checkContainerStatus(name string) (string, error) { return "", nil } +func delPHPExtensions(dir, phpExtensionDir, fileName, extName string) { + fileOp := files.NewFileOp() + _ = fileOp.DeleteFile(path.Join(phpExtensionDir, fileName)) + _ = fileOp.DeleteFile(path.Join(dir, "conf", "conf.d", "docker-php-ext-"+extName+".ini")) + _ = removePHPIniExt(path.Join(dir, "conf", "php.ini"), fileName) +} + func unInstallPHPExtension(runtime *model.Runtime, delExtensions []string) error { dir := runtime.GetPath() - fileOP := files.NewFileOp() var phpExtensions []response.SupportExtension if err := json.Unmarshal(nginx_conf.GetWebsiteFile("php_extensions.json"), &phpExtensions); err != nil { return err @@ -700,16 +706,20 @@ func unInstallPHPExtension(runtime *model.Runtime, delExtensions []string) error phpExtensionDir := path.Join(dir, "extensions", getExtensionDir(phpVersion)) delMap := make(map[string]struct{}) - for _, ext := range phpExtensions { - for _, del := range delExtensions { + for _, del := range delExtensions { + exist := false + for _, ext := range phpExtensions { if ext.Name == del { + exist = true delMap[ext.Check] = struct{}{} - _ = fileOP.DeleteFile(path.Join(phpExtensionDir, ext.File)) - _ = fileOP.DeleteFile(path.Join(dir, "conf", "conf.d", "docker-php-ext-"+ext.Check+".ini")) - _ = removePHPIniExt(path.Join(dir, "conf", "php.ini"), ext.File) + delPHPExtensions(dir, phpExtensionDir, ext.Check, ext.Name) break } } + if !exist { + delMap[del] = struct{}{} + delPHPExtensions(dir, phpExtensionDir, del+".so", del) + } } extensions := getRuntimeEnv(runtime.Env, "PHP_EXTENSIONS") var ( diff --git a/agent/cmd/server/nginx_conf/php_extensions.json b/agent/cmd/server/nginx_conf/php_extensions.json index e97f0c52b..53acbb02a 100644 --- a/agent/cmd/server/nginx_conf/php_extensions.json +++ b/agent/cmd/server/nginx_conf/php_extensions.json @@ -1,4 +1,25 @@ [ + { + "name": "amqp", + "check": "amqp", + "file": "amqp.so", + "versions": ["56","70", "71", "72", "73", "74", "80", "81", "82", "83","84"], + "installed": false + }, + { + "name": "apcu", + "check": "apcu", + "file": "apcu.so", + "versions": ["56", "70", "71", "72", "73", "74", "80", "81", "82", "83","84"], + "installed": false + }, + { + "name": "bcmath", + "check": "bcmath", + "file": "bcmath.so", + "versions": ["56","70", "71", "72", "73", "74", "80", "81", "82", "83","84"], + "installed": false + }, { "name": "ionCube", "check": "ionCube Loader", @@ -41,13 +62,7 @@ "versions": ["70", "71", "72", "73", "74", "80", "81", "82", "83","84"], "installed": false }, - { - "name": "apcu", - "check": "apcu", - "file": "apcu.so", - "versions": ["56", "70", "71", "72", "73", "74", "80", "81", "82", "83","84"], - "installed": false - }, + { "name": "imagick", "check": "imagick", @@ -363,13 +378,7 @@ "versions": ["56","70", "71", "72", "73", "74", "80", "81", "82", "83","84"], "installed": false }, - { - "name": "bcmath", - "check": "bcmath", - "file": "bcmath.so", - "versions": ["56","70", "71", "72", "73", "74", "80", "81", "82", "83","84"], - "installed": false - }, + { "name": "pcntl", "check": "pcntl", @@ -383,5 +392,40 @@ "file": "sodium.so", "versions": ["70", "71", "72", "73", "74", "80", "81", "82", "83","84"], "installed": false + }, + { + "name": "gettext", + "check": "gettext", + "file": "gettext.so", + "versions": ["56","70", "71", "72", "73", "74", "80", "81", "82", "83","84"], + "installed": false + }, + { + "name": "soap", + "check": "soap", + "file": "soap.so", + "versions": ["56","70", "71", "72", "73", "74", "80", "81", "82", "83","84"], + "installed": false + }, + { + "name": "sysvsem", + "check": "sysvsem", + "file": "sysvsem.so", + "versions": ["56","70", "71", "72", "73", "74", "80", "81", "82", "83","84"], + "installed": false + }, + { + "name": "sockets", + "check": "sockets", + "file": "sockets.so", + "versions": ["56","70", "71", "72", "73", "74", "80", "81", "82", "83","84"], + "installed": false + }, + { + "name": "xmlrpc", + "check": "xmlrpc", + "file": "xmlrpc.so", + "versions": ["56","70", "71", "72", "73", "74", "80", "81", "82", "83","84"], + "installed": false } ] diff --git a/frontend/src/views/website/runtime/components/terminal.vue b/frontend/src/views/website/runtime/components/terminal.vue index 6758b2921..c3f252a59 100644 --- a/frontend/src/views/website/runtime/components/terminal.vue +++ b/frontend/src/views/website/runtime/components/terminal.vue @@ -9,9 +9,9 @@ :autoClose="false" >