From 64fd7159736073ca808d163c8523cd664e46c028 Mon Sep 17 00:00:00 2001 From: CityFun <31820853+zhengkunwang223@users.noreply.github.com> Date: Fri, 27 Jun 2025 16:56:13 +0800 Subject: [PATCH] perf: optimization php config (#9321) --- agent/app/service/runtime_utils.go | 20 ++++++++++++++++++++ agent/cmd/server/nginx_conf/php-fpm.conf | 16 ++++++++++++++++ agent/constant/runtime.go | 6 +++--- agent/init/migration/migrate.go | 1 + agent/init/migration/migrations/init.go | 8 ++++++++ 5 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 agent/cmd/server/nginx_conf/php-fpm.conf diff --git a/agent/app/service/runtime_utils.go b/agent/app/service/runtime_utils.go index c8ebe18eb..aa927d83d 100644 --- a/agent/app/service/runtime_utils.go +++ b/agent/app/service/runtime_utils.go @@ -1003,3 +1003,23 @@ func handlePHPDir(runtime model.Runtime) { _ = fileOp.ChownR(dir, strconv.Itoa(1000), strconv.Itoa(1000), true) } } + +func HandleOldPHPRuntime() { + runtimes, _ := runtimeRepo.List(repo.WithByType(constant.RuntimePHP)) + if len(runtimes) == 0 { + return + } + fileOp := files.NewFileOp() + for _, runtime := range runtimes { + composePtah := runtime.GetComposePath() + composeBytes, _ := fileOp.GetContent(composePtah) + composeContent := strings.ReplaceAll(string(composeBytes), "./conf:/usr/local/etc/php", "./conf/php.ini:/usr/local/etc/php/php.ini") + composeContent = strings.ReplaceAll(composeContent, "./conf/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf", "./conf/php-fpm.conf:/usr/local/etc/php-fpm.conf") + composeContent = strings.ReplaceAll(composeContent, "./extensions:${EXTENSION_DIR}", "./extensions:/usr/local/lib/php/extensions") + _ = fileOp.WriteFile(composePtah, strings.NewReader(composeContent), constant.DirPerm) + _ = fileOp.WriteFile(runtime.GetFPMPath(), bytes.NewReader(nginx_conf.GetWebsiteFile("php-fpm.conf")), constant.DirPerm) + go func() { + _ = restartRuntime(&runtime) + }() + } +} diff --git a/agent/cmd/server/nginx_conf/php-fpm.conf b/agent/cmd/server/nginx_conf/php-fpm.conf new file mode 100644 index 000000000..bcfcfede5 --- /dev/null +++ b/agent/cmd/server/nginx_conf/php-fpm.conf @@ -0,0 +1,16 @@ +[global] +error_log = /var/log/php/fpm.error.log +log_level = notice +[www] +user = www-data +group = www-data +listen = 127.0.0.1:9000 +pm = dynamic +pm.max_children = 10 +pm.start_servers = 2 +pm.min_spare_servers = 1 +pm.max_spare_servers = 3 +pm.status_path = /status +slowlog = /var/log/php/fpm.slow.log +request_slowlog_timeout = 3 +catch_workers_output = yes \ No newline at end of file diff --git a/agent/constant/runtime.go b/agent/constant/runtime.go index ca2be0a77..b96e235b4 100644 --- a/agent/constant/runtime.go +++ b/agent/constant/runtime.go @@ -41,11 +41,11 @@ var RuntimeDefaultVolumes = map[string]string{ var PHPDefaultVolumes = map[string]string{ "${PANEL_WEBSITE_DIR}": "/www/", - "./conf": "/usr/local/etc/php", + "./conf/php.ini": "/usr/local/etc/php/php.ini", "./conf/conf.d": "/usr/local/etc/php/conf.d", - "./conf/php-fpm.conf": "/usr/local/etc/php-fpm.d/www.conf", + "./conf/php-fpm.conf": "/usr/local/etc/php-fpm.conf", "./log": "/var/log/php", - "./extensions": "${EXTENSION_DIR}", + "./extensions": "/usr/local/lib/php/extensions", "./supervisor/supervisord.conf": "/etc/supervisord.conf", "./supervisor/supervisor.d/php-fpm.ini": "/etc/supervisor.d/php-fpm.ini", "./supervisor/supervisor.d": "/etc/supervisor.d", diff --git a/agent/init/migration/migrate.go b/agent/init/migration/migrate.go index cee978400..feddce0ba 100644 --- a/agent/init/migration/migrate.go +++ b/agent/init/migration/migrate.go @@ -26,6 +26,7 @@ func InitAgentDB() { migrations.UpdateWebsiteExpireDate, migrations.UpdateRuntime, migrations.AddSnapshotRule, + migrations.UpdatePHPRuntime, }) if err := m.Migrate(); err != nil { global.LOG.Error(err) diff --git a/agent/init/migration/migrations/init.go b/agent/init/migration/migrations/init.go index a072eddd4..6bc84aeec 100644 --- a/agent/init/migration/migrations/init.go +++ b/agent/init/migration/migrations/init.go @@ -332,3 +332,11 @@ var AddSnapshotRule = &gormigrate.Migration{ ) }, } + +var UpdatePHPRuntime = &gormigrate.Migration{ + ID: "20250624-update-php-runtime", + Migrate: func(tx *gorm.DB) error { + service.HandleOldPHPRuntime() + return nil + }, +}