diff options
Diffstat (limited to 'phpBB/install/install_install.php')
| -rw-r--r-- | phpBB/install/install_install.php | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/phpBB/install/install_install.php b/phpBB/install/install_install.php index 001acc4584..eb61be1f46 100644 --- a/phpBB/install/install_install.php +++ b/phpBB/install/install_install.php @@ -769,7 +769,8 @@ class install_install extends module // Create a list of any PHP modules we wish to have loaded $load_extensions = array(); $available_dbms = get_available_dbms($data['dbms']); - $check_exts = array_merge(array($available_dbms[$data['dbms']]['MODULE']), $this->php_dlls_other); + + $check_exts = array_merge($this->php_dlls_other); foreach ($check_exts as $dll) { @@ -784,6 +785,37 @@ class install_install extends module } } + $db_module = $available_dbms[$data['dbms']]['MODULE']; + + if (!is_array($db_module)) + { + $db_module = array($db_module); + } + + $load_dll = true; + foreach ($db_module as $dll) + { + if (@extension_loaded($dll)) + { + $load_dll = false; + break; + } + + if (!can_load_dll($dll)) + { + $load_dll = false; + break; + } + + $load_dll = true; + } + + if ($load_dll) + { + $dll = current($db_module); + $load_extensions[] = $dll . '.' . PHP_SHLIB_SUFFIX; + } + // Create a lock file to indicate that there is an install in progress $fp = @fopen(PHPBB_ROOT_PATH . 'cache/install_lock', 'wb'); if ($fp === false) |
