Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Zend/zend_string.h
Original file line number Diff line number Diff line change
Expand Up @@ -636,6 +636,7 @@ EMPTY_SWITCH_DEFAULT_CASE()
_(ZEND_STR_SINCE, "since") \
_(ZEND_STR_GET, "get") \
_(ZEND_STR_SET, "set") \
_(ZEND_STR_MEMORY_LIMIT, "memory_limit") \
_(ZEND_STR_8_DOT_0, "8.0") \
_(ZEND_STR_8_DOT_1, "8.1") \
_(ZEND_STR_8_DOT_2, "8.2") \
Expand Down
1 change: 1 addition & 0 deletions build/gen_stub.php
Original file line number Diff line number Diff line change
Expand Up @@ -3029,6 +3029,7 @@ class StringBuilder {
"username" => "ZEND_STR_USERNAME",
"password" => "ZEND_STR_PASSWORD",
"clone" => "ZEND_STR_CLONE",
"memory_limit" => "ZEND_STR_MEMORY_LIMIT",
'8.0' => 'ZEND_STR_8_DOT_0',
'8.1' => 'ZEND_STR_8_DOT_1',
'8.2' => 'ZEND_STR_8_DOT_2',
Expand Down
2 changes: 1 addition & 1 deletion main/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -381,8 +381,8 @@ static PHP_INI_MH(OnChangeMaxMemoryLimit)
return FAILURE;
}

PG(memory_limit) = value;
PG(max_memory_limit) = value;
zend_alter_ini_entry(ZSTR_KNOWN(ZEND_STR_MEMORY_LIMIT), new_value, PHP_INI_ALL, stage);

return SUCCESS;
}
Expand Down
6 changes: 1 addition & 5 deletions sapi/fpm/fpm/fpm_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1396,7 +1396,6 @@ static void fastcgi_ini_parser(zval *arg1, zval *arg2, zval *arg3, int callback_
int *mode = (int *)arg;
char *key;
char *value = NULL;
struct key_value_s kv;

if (!mode || !arg1) return;

Expand All @@ -1421,10 +1420,7 @@ static void fastcgi_ini_parser(zval *arg1, zval *arg2, zval *arg3, int callback_
return;
}

kv.key = key;
kv.value = value;
kv.next = NULL;
if (fpm_php_apply_defines_ex(&kv, *mode) == -1) {
if (zend_alter_ini_entry_chars(Z_STR_P(arg1), Z_STRVAL_P(arg2), Z_STRLEN_P(arg2), *mode, PHP_INI_STAGE_HTACCESS) == FAILURE) {
zlog(ZLOG_ERROR, "Passing INI directive through FastCGI: unable to set '%s'", key);
}
}
Expand Down
27 changes: 17 additions & 10 deletions sapi/fpm/tests/tester.inc
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ class Tester
/**
* @var array
*/
static private array $filesToClean = ['.user.ini'];
static private array $filesToClean = ['.user.ini', 'php.ini'];

/**
* @var bool
Expand Down Expand Up @@ -496,12 +496,12 @@ class Tester
/**
* Start PHP-FPM master process
*
* @param array $extraArgs Command extra arguments.
* @param bool $forceStderr Whether to output to stderr so error log is used.
* @param bool $daemonize Whether to start FPM daemonized
* @param array $extensions List of extension to add if shared build used.
* @param array $iniEntries List of ini entries to use.
* @param array|null $envVars List of env variable to execute FPM with or null to use the current ones.
* @param array $extraArgs Command extra arguments.
* @param bool $forceStderr Whether to output to stderr so error log is used.
* @param bool $daemonize Whether to start FPM daemonized
* @param array $extensions List of extension to add if shared build used.
* @param array|string $iniEntries List of ini entries or content of php.ini to use.
* @param array|null $envVars List of env variable to execute FPM with or null to use the current ones.
*
* @return bool
* @throws \Exception
Expand All @@ -511,7 +511,7 @@ class Tester
bool $forceStderr = true,
bool $daemonize = false,
array $extensions = [],
array $iniEntries = [],
array|string $iniEntries = [],
?array $envVars = null,
) {
$configFile = $this->createConfig();
Expand All @@ -536,8 +536,15 @@ class Tester
}
}

foreach ($iniEntries as $iniEntryName => $iniEntryValue) {
$cmd[] = '-d' . $iniEntryName . '=' . $iniEntryValue;
if (is_string($iniEntries)) {
$iniFile = __DIR__ . '/php.ini';
$this->trace('Writing php.ini file', $iniEntries, isFile: true);
file_put_contents($iniFile, $iniEntries);
$cmd[] = '-c' . $iniFile;
} else {
foreach ($iniEntries as $iniEntryName => $iniEntryValue) {
$cmd[] = '-d' . $iniEntryName . '=' . $iniEntryValue;
}
}

if ($envVars['TEST_FPM_RUN_AS_ROOT'] ?? getenv('TEST_FPM_RUN_AS_ROOT')) {
Expand Down