Skip to content

Commit 3f8a011

Browse files
Nishi-1412copybara-github
authored andcommitted
Setting log_limit to 256kb in php-fpm.conf file template.
PiperOrigin-RevId: 784189588 Change-Id: I3a31cdf50afb291bc0541702e319b8d049cda3fb
1 parent c1ecf89 commit 3f8a011

File tree

3 files changed

+19
-9
lines changed

3 files changed

+19
-9
lines changed

cmd/php/supervisor/main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,7 @@ func fpmConfig(layer string, overrides webconfig.OverrideProperties) (nginx.FPMC
203203
DynamicWorkers: defaultDynamicWorkers,
204204
Username: user.Username,
205205
AddNoDecorateWorkers: true,
206+
UseLogLimit: true,
206207
}
207208

208209
if overrides.PHPFPMOverride {

cmd/php/webconfig/main.go

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,14 @@ func getInstalledPhpVersion(ctx *gcp.Context) (string, error) {
148148
return resolvedVersion, nil
149149
}
150150

151-
func supportsDecorateWorkersOutput(ctx *gcp.Context) (bool, error) {
151+
// isVersion73OrGreater checks if the installed PHP version is 7.3.0 or newer.
152+
// This is used to enable features like 'decorate_workers_output = no' and 'log_limit'.
153+
// (1) For php >= 7.3.0, the directive decorate_workers_output prevents php from prepending a warning
154+
// message to all logged entries. Prior to 7.3.0, decorate_workers_output was not available, and
155+
// these warning messages were prepended to all logged entries. Here we choose to set
156+
// decorate_workers_output = no if the runtime version is >= 7.3.0.
157+
// (2) Set log_limit to 256kb.
158+
func isVersion73OrGreater(ctx *gcp.Context) (bool, error) {
152159
v, err := getInstalledPhpVersion(ctx)
153160
if err != nil {
154161
return false, err
@@ -172,22 +179,18 @@ func supportsDecorateWorkersOutput(ctx *gcp.Context) (bool, error) {
172179
}
173180

174181
func writeFpmConfig(ctx *gcp.Context, path string, overrides webconfig.OverrideProperties) (*os.File, error) {
175-
// For php >= 7.3.0, the directive decorate_workers_output prevents php from prepending a warning
176-
// message to all logged entries. Prior to 7.3.0, decorate_workers_output was not available, and
177-
// these warning messages are prepended to all logged entries. Here we choose to set
178-
// decorate_workers_output if the runtime version is >= 7.3.0.
179-
addNoDecorateWorkers, err := supportsDecorateWorkersOutput(ctx)
182+
isVersion73OrGreater, err := isVersion73OrGreater(ctx)
180183
if err != nil {
181184
return nil, err
182185
}
183-
conf, err := fpmConfig(path, addNoDecorateWorkers, overrides)
186+
conf, err := fpmConfig(path, isVersion73OrGreater, overrides)
184187
if err != nil {
185188
return nil, err
186189
}
187190
return nginx.WriteFpmConfigToPath(path, conf)
188191
}
189192

190-
func fpmConfig(layer string, addNoDecorateWorkers bool, overrides webconfig.OverrideProperties) (nginx.FPMConfig, error) {
193+
func fpmConfig(layer string, isVersion73OrGreater bool, overrides webconfig.OverrideProperties) (nginx.FPMConfig, error) {
191194
user, err := user.Current()
192195
if err != nil {
193196
return nginx.FPMConfig{}, fmt.Errorf("getting current user: %w", err)
@@ -199,7 +202,8 @@ func fpmConfig(layer string, addNoDecorateWorkers bool, overrides webconfig.Over
199202
ListenAddress: filepath.Join(layer, appSocket),
200203
DynamicWorkers: defaultDynamicWorkers,
201204
Username: user.Username,
202-
AddNoDecorateWorkers: addNoDecorateWorkers,
205+
AddNoDecorateWorkers: isVersion73OrGreater,
206+
UseLogLimit: isVersion73OrGreater,
203207
}
204208

205209
if env.IsFlex() {

pkg/nginx/nginx.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ import (
2424

2525
// PHPFpmTemplate is a template that produces a snippet of php-fpm config that sets up the PHP with Nginx.
2626
var PHPFpmTemplate = template.Must(template.New("phpfpm").Parse(`
27+
{{- if .UseLogLimit}}
28+
log_limit = 262144 ; 256 kb
29+
{{- end}}
30+
2731
; Send errors to stderr.
2832
error_log = /proc/self/fd/2
2933
@@ -158,6 +162,7 @@ type FPMConfig struct {
158162
Username string
159163
AddNoDecorateWorkers bool
160164
ConfOverride string
165+
UseLogLimit bool
161166
}
162167

163168
// Config represents the content values of a nginx config file.

0 commit comments

Comments
 (0)