X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=install.php;h=69f025a6a6dca0bf7aaa65d1cc07a3a2e4a631a2;hb=921b25bf6281eb9d9d500eb8f5d98b8b473794cb;hp=54ae0cd5e11ab9bdd7698f5457a11d87872e154f;hpb=fd4509894f6aaff6b0b4bd6b95b6f6d5e2778eaa;p=quix0rs-gnu-social.git diff --git a/install.php b/install.php index 54ae0cd5e1..69f025a6a6 100644 --- a/install.php +++ b/install.php @@ -1,3 +1,4 @@ + * @author Craig Andrews * @author Eric Helgeson - * @author Evan Prodromou * @author Evan Prodromou * @author Robin Millette - * @author Sarven Capadisli + * @author Sarven Capadisli * @author Tom Adams * @license GNU Affero General Public License http://www.gnu.org/licenses/ + * @version 0.9.x + * @link http://status.net */ define('INSTALLDIR', dirname(__FILE__)); @@ -243,7 +245,7 @@ function main() */ function haveExternalLibrary($external_library) { - if (isset($external_library['include']) && ! @include_once $external_library['include'] ) { + if (isset($external_library['include']) && !haveIncludeFile($external_library['include'])) { return false; } if (isset($external_library['check_function']) && ! function_exists($external_library['check_function'])) { @@ -255,6 +257,15 @@ function haveExternalLibrary($external_library) return true; } +// Attempt to include a PHP file and report if it worked, while +// suppressing the annoying warning messages on failure. +function haveIncludeFile($filename) { + $old = error_reporting(error_reporting() & ~E_WARNING); + $ok = include_once($filename); + error_reporting($old); + return $ok; +} + /** * Check if all is ready for installation * @@ -327,12 +338,19 @@ function checkPrereqs() */ function checkExtension($name) { - if (!extension_loaded($name)) { - if (!@dl($name.'.so')) { - return false; + if (extension_loaded($name)) { + return true; + } elseif (function_exists('dl') && ini_get('enable_dl') && !ini_get('safe_mode')) { + // dl will throw a fatal error if it's disabled or we're in safe mode. + // More fun, it may not even exist under some SAPIs in 5.3.0 or later... + $soname = $name . '.' . PHP_SHLIB_SUFFIX; + if (PHP_SHLIB_SUFFIX == 'dll') { + $soname = "php_" . $soname; } + return @dl($soname); + } else { + return false; } - return true; } /** @@ -389,7 +407,7 @@ E_O_T; E_O_T; foreach ($present_libraries as $library) { echo '
  • '; - if ($library['url']) { + if (isset($library['url'])) { echo ''.htmlentities($library['name']).''; } else { echo htmlentities($library['name']); @@ -477,12 +495,7 @@ E_O_T; function updateStatus($status, $error=false) { - echo '$status
  • "; + echo '$status"; } function handlePost()