diff options
author | Wez Furlong <wez@php.net> | 2003-12-06 16:04:34 +0000 |
---|---|---|
committer | Wez Furlong <wez@php.net> | 2003-12-06 16:04:34 +0000 |
commit | fcdda2e8f8182a38404e3e5db2bb560a9348cd17 (patch) | |
tree | 528497115f4676ae418feb8a0e1c105ecc1c440b | |
parent | 45eb5a8d03cdf72f6fc01117ecf372236fce83f6 (diff) | |
download | php-git-fcdda2e8f8182a38404e3e5db2bb560a9348cd17.tar.gz |
Fix a problem resolving the php.ini path under win32 terminal services environment.
Remove config-file-path option from configure under win32; it is not used except to display what might have been chosen, so lets default to the getenv() thingy.
-rw-r--r-- | ext/standard/config.w32 | 9 | ||||
-rw-r--r-- | main/php_ini.c | 26 | ||||
-rw-r--r-- | win32/build/config.w32.h.in | 1 |
3 files changed, 27 insertions, 9 deletions
diff --git a/ext/standard/config.w32 b/ext/standard/config.w32 index 9658ed6aeb..d587dedcc6 100644 --- a/ext/standard/config.w32 +++ b/ext/standard/config.w32 @@ -4,15 +4,6 @@ ARG_WITH("config-file-scan-dir", "Dir to check for additional php ini files", ""); AC_DEFINE("PHP_CONFIG_FILE_SCAN_DIR", PHP_CONFIG_FILE_SCAN_DIR); -ARG_WITH("config-file-path", "Where to find php.ini", - '(getenv("SystemRoot"))?getenv("SystemRoot"):""'); - -if (PHP_CONFIG_FILE_PATH == null) { - AC_DEFINE("PHP_CONFIG_FILE_PATH", PHP_CONFIG_FILE_PATH, null, false); -} else { - AC_DEFINE("PHP_CONFIG_FILE_PATH", PHP_CONFIG_FILE_PATH); -} - EXTENSION("standard", "array.c base64.c basic_functions.c browscap.c \ crc32.c crypt.c cyr_convert.c datetime.c dir.c dl.c dns.c exec.c \ file.c filestat.c formatted_print.c fsock.c head.c html.c image.c \ diff --git a/main/php_ini.c b/main/php_ini.c index f4d2d9a0f1..59d5ce7053 100644 --- a/main/php_ini.c +++ b/main/php_ini.c @@ -379,6 +379,32 @@ int php_init_config() strcat(php_ini_search_path, default_location); } efree(default_location); + + { + /* For people running under terminal services, GetWindowsDirectory will + * return their personal Windows directory, so lets add the system + * windows directory too */ + typedef UINT (WINAPI *get_system_windows_directory_func)(char *buffer, UINT size); + static get_system_windows_directory_func get_system_windows_directory = NULL; + HMODULE kern; + + if (get_system_windows_directory == NULL) { + kern = LoadLibrary("kernel32.dll"); + if (kern) { + get_system_windows_directory = (get_system_windows_directory_func)GetProcAddress(kern, "GetSystemWindowsDirectoryA"); + } + } + if (get_system_windows_directory != NULL) { + default_location = (char *) emalloc(MAXPATHLEN + 1); + if (0 < get_system_windows_directory(default_location, MAXPATHLEN)) { + if (*php_ini_search_path) { + strcat(php_ini_search_path, paths_separator); + } + strcat(php_ini_search_path, default_location); + } + efree(default_location); + } + } #else default_location = PHP_CONFIG_FILE_PATH; if (*php_ini_search_path) { diff --git a/win32/build/config.w32.h.in b/win32/build/config.w32.h.in index 02607f1672..4aabd98f11 100644 --- a/win32/build/config.w32.h.in +++ b/win32/build/config.w32.h.in @@ -4,6 +4,7 @@ */ /* Default PHP / PEAR directories */ +#define PHP_CONFIG_FILE_PATH (getenv("SystemRoot"))?getenv("SystemRoot"):"" #define CONFIGURATION_FILE_PATH "php.ini" #define PEAR_INSTALLDIR "@PREFIX@\\pear" #define PHP_BINDIR "@PREFIX@" |