-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathphp-sapi-ini-file.patch
More file actions
58 lines (49 loc) · 2.53 KB
/
Copy pathphp-sapi-ini-file.patch
File metadata and controls
58 lines (49 loc) · 2.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
The ini loading order is in PLD (as of 7.4.0beta2):
- openat(AT_FDCWD, "/etc/php74/php-cli.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
- openat(AT_FDCWD, "/etc/php74/php.ini", O_RDONLY) = 4
- openat(AT_FDCWD, "/etc/php74/conf.d", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_CLOEXEC|O_DIRECTORY) = 4
- openat(AT_FDCWD, "/etc/php74/conf.d/00_curl.ini", O_RDONLY) = 4
- openat(AT_FDCWD, "/etc/php74/conf.d/00_json.ini", O_RDONLY) = 4
- openat(AT_FDCWD, "/etc/php74/conf.d/00_opcache.ini", O_RDONLY) = 4
- openat(AT_FDCWD, "/etc/php74/conf.d/00_xml.ini", O_RDONLY) = 4
- openat(AT_FDCWD, "/etc/php74/conf.d/opcache.ini", O_RDONLY) = 4
- openat(AT_FDCWD, "/etc/php74/conf.d/timezone.ini", O_RDONLY) = 4
- openat(AT_FDCWD, "/etc/php74/cli.d", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_CLOEXEC|O_DIRECTORY) = 4
- openat(AT_FDCWD, "/etc/php74/cli.d/00_readline.ini", O_RDONLY) = 4
- openat(AT_FDCWD, "/etc/php74/cli.d/php.ini", O_RDONLY) = 4
1. load php-<sapi>.ini; if exists treat as main php.ini
2. load php.ini if php-<sapi>.ini was not found
3. load conf.d/DD_*.ini to load extra extension and zend_extension lines
4. load conf.d/*.ini to load extra ini settings not involving loading extension
5. load <sapi>.d same way as conf.d
This allows minimal patch, but still allowing to have main php ini and sapi specific overrides
To test which is main php.ini:
$ php -r 'var_dump(array(get_cfg_var("cfg_file_path"),php_ini_loaded_file()));'
https://github.com/pld-linux/php/commit/762ec2e
--- php-8.5.0beta1/main/php_ini.c~ 2025-08-28 15:40:36.544074056 +0200
+++ php-8.5.0beta1/main/php_ini.c 2025-08-28 15:50:43.598534290 +0200
@@ -410,6 +410,11 @@ static void append_ini_path(char *php_in
strlcat(php_ini_search_path, path, search_path_size);
}
+static int php_csort(const struct dirent **a, const struct dirent **b)
+{
+ return strcmp((*a)->d_name,(*b)->d_name);
+}
+
/* {{{ php_init_config */
void php_init_config(void)
{
@@ -640,12 +645,14 @@ void php_init_config(void)
char *p;
zend_llist scanned_ini_list;
size_t total_l = 0;
+ const char *fmt = "%s:" PHP_CONFIG_FILE_PATH "/%s.d";
char *bufpath, *debpath, *endpath;
size_t lenpath;
zend_llist_init(&scanned_ini_list, sizeof(char *), (llist_dtor_func_t) free_estring, true);
- bufpath = estrdup(php_ini_scanned_path);
+ bufpath = emalloc(strlen(php_ini_scanned_path) + strlen(fmt) + strlen(sapi_module.name));
+ sprintf(bufpath, fmt, php_ini_scanned_path, sapi_module.name);
for (debpath = bufpath ; debpath ; debpath=endpath) {
endpath = strchr(debpath, DEFAULT_DIR_SEPARATOR);
if (endpath) {