summaryrefslogtreecommitdiff
path: root/main/php_ini.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2006-08-03 11:04:52 +0000
committerDmitry Stogov <dmitry@php.net>2006-08-03 11:04:52 +0000
commitc946b4d1b25fa1723d3c08b5fc3be69bb32f90c2 (patch)
treeed457c4c84c2cac0de8309cc7a862bb367185431 /main/php_ini.c
parentbc8f1bc4f0aa0d0a72ae7e958e825cb205e149b1 (diff)
downloadphp-git-c946b4d1b25fa1723d3c08b5fc3be69bb32f90c2.tar.gz
In addtion to path to php.ini, PHPRC now may specify full file name
Diffstat (limited to 'main/php_ini.c')
-rw-r--r--main/php_ini.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/main/php_ini.c b/main/php_ini.c
index c4abee2b67..25fbe0f487 100644
--- a/main/php_ini.c
+++ b/main/php_ini.c
@@ -258,6 +258,7 @@ static void pvalue_config_destructor(zval *pvalue)
*/
int php_init_config(TSRMLS_D)
{
+ char *php_ini_file_name = NULL;
char *php_ini_search_path = NULL;
int safe_mode_state;
char *open_basedir;
@@ -286,6 +287,7 @@ int php_init_config(TSRMLS_D)
open_basedir = PG(open_basedir);
if (sapi_module.php_ini_path_override) {
+ php_ini_file_name = sapi_module.php_ini_path_override;
php_ini_search_path = sapi_module.php_ini_path_override;
free_ini_search_path = 0;
} else if (!sapi_module.php_ini_ignore) {
@@ -316,6 +318,7 @@ int php_init_config(TSRMLS_D)
strcat(php_ini_search_path, paths_separator);
}
strcat(php_ini_search_path, env_location);
+ php_ini_file_name = env_location;
}
#ifdef PHP_WIN32
@@ -421,13 +424,15 @@ int php_init_config(TSRMLS_D)
memset(&fh, 0, sizeof(fh));
/* Check if php_ini_path_override is a file */
if (!sapi_module.php_ini_ignore) {
- if (sapi_module.php_ini_path_override && sapi_module.php_ini_path_override[0]) {
+ if (php_ini_file_name && php_ini_file_name[0]) {
struct stat statbuf;
- if (!VCWD_STAT(sapi_module.php_ini_path_override, &statbuf)) {
+ if (!VCWD_STAT(php_ini_file_name, &statbuf)) {
if (!((statbuf.st_mode & S_IFMT) == S_IFDIR)) {
- fh.handle.fp = VCWD_FOPEN(sapi_module.php_ini_path_override, "r");
- fh.filename = sapi_module.php_ini_path_override;
+ fh.handle.fp = VCWD_FOPEN(php_ini_file_name, "r");
+ if (fh.handle.fp) {
+ fh.filename = php_ini_opened_path = expand_filepath(php_ini_file_name, NULL TSRMLS_CC);
+ }
}
}
}