diff -ur php-5.2.3.orig/main/main.c php-5.2.3/main/main.c --- php-5.2.3.orig/main/main.c +++ php-5.2.3/main/main.c @@ -1584,7 +1584,11 @@ REGISTER_MAIN_STRINGL_CONSTANT("PHP_SYSCONFDIR", PHP_SYSCONFDIR, sizeof(PHP_SYSCONFDIR)-1, CONST_PERSISTENT | CONST_CS); REGISTER_MAIN_STRINGL_CONSTANT("PHP_LOCALSTATEDIR", PHP_LOCALSTATEDIR, sizeof(PHP_LOCALSTATEDIR)-1, CONST_PERSISTENT | CONST_CS); REGISTER_MAIN_STRINGL_CONSTANT("PHP_CONFIG_FILE_PATH", PHP_CONFIG_FILE_PATH, strlen(PHP_CONFIG_FILE_PATH), CONST_PERSISTENT | CONST_CS); - REGISTER_MAIN_STRINGL_CONSTANT("PHP_CONFIG_FILE_SCAN_DIR", PHP_CONFIG_FILE_SCAN_DIR, sizeof(PHP_CONFIG_FILE_SCAN_DIR)-1, CONST_PERSISTENT | CONST_CS); + if (!strcmp(sapi_module.name, "cli") && strlen(PHP_CONFIG_FILE_SCAN_DIR)) { + REGISTER_MAIN_STRINGL_CONSTANT("PHP_CONFIG_FILE_SCAN_DIR", PHP_CONFIG_FILE_SCAN_DIR "-cli", sizeof(PHP_CONFIG_FILE_SCAN_DIR)+3, CONST_PERSISTENT | CONST_CS); + } else { + REGISTER_MAIN_STRINGL_CONSTANT("PHP_CONFIG_FILE_SCAN_DIR", PHP_CONFIG_FILE_SCAN_DIR, sizeof(PHP_CONFIG_FILE_SCAN_DIR)-1, CONST_PERSISTENT | CONST_CS); + } REGISTER_MAIN_STRINGL_CONSTANT("PHP_SHLIB_SUFFIX", PHP_SHLIB_SUFFIX, sizeof(PHP_SHLIB_SUFFIX)-1, CONST_PERSISTENT | CONST_CS); REGISTER_MAIN_STRINGL_CONSTANT("PHP_EOL", PHP_EOL, sizeof(PHP_EOL)-1, CONST_PERSISTENT | CONST_CS); REGISTER_MAIN_LONG_CONSTANT("PHP_INT_MAX", LONG_MAX, CONST_PERSISTENT | CONST_CS); diff -ur php-5.2.3.orig/main/php_ini.c php-5.2.3/main/php_ini.c --- php-5.2.3.orig/main/php_ini.c +++ php-5.2.3/main/php_ini.c @@ -514,15 +514,20 @@ if (!sapi_module.php_ini_ignore && strlen(PHP_CONFIG_FILE_SCAN_DIR)) { struct dirent **namelist; int ndir, i; + const char *config_file_scan_dir = PHP_CONFIG_FILE_SCAN_DIR; - if ((ndir = php_scandir(PHP_CONFIG_FILE_SCAN_DIR, &namelist, 0, php_alphasort)) > 0) { + if (!strcmp(sapi_module.name, "cli")) { + config_file_scan_dir = PHP_CONFIG_FILE_SCAN_DIR "-cli"; + } + + if ((ndir = php_scandir(config_file_scan_dir, &namelist, 0, php_alphasort)) > 0) { for (i = 0; i < ndir; i++) { /* check for a .ini extension */ if (!(p = strrchr(namelist[i]->d_name, '.')) || (p && strcmp(p, ".ini"))) { free(namelist[i]); continue; } - snprintf(ini_file, MAXPATHLEN, "%s%c%s", PHP_CONFIG_FILE_SCAN_DIR, DEFAULT_SLASH, namelist[i]->d_name); + snprintf(ini_file, MAXPATHLEN, "%s%c%s", config_file_scan_dir, DEFAULT_SLASH, namelist[i]->d_name); if (VCWD_STAT(ini_file, &sb) == 0) { if (S_ISREG(sb.st_mode)) { if ((fh.handle.fp = VCWD_FOPEN(ini_file, "r"))) {