diff options
Diffstat (limited to 'installer')
| -rw-r--r-- | installer/cli.php | 5 | ||||
| -rw-r--r-- | installer/installer.php | 41 | ||||
| -rw-r--r-- | installer/web.php | 42 | 
3 files changed, 47 insertions, 41 deletions
| diff --git a/installer/cli.php b/installer/cli.php index 50845ea4..182c3d26 100644 --- a/installer/cli.php +++ b/installer/cli.php @@ -30,6 +30,11 @@ if (installer::already_installed()) {    return;  } +$errors = installer::check_environment(); +if ($errors) { +  oops(implode("errors", "\n")); +} +  $config = parse_cli_params();  if (!installer::connect($config)) {    oops("Unable to connect to the database.\n" . mysql_error() . "\n"); diff --git a/installer/installer.php b/installer/installer.php index 7a417634..70afc440 100644 --- a/installer/installer.php +++ b/installer/installer.php @@ -178,4 +178,45 @@ class installer {    static function prepend_prefix($prefix, $sql) {      return  preg_replace("#{([a-zA-Z0-9_]+)}#", "{$prefix}$1", $sql);    } + +  static function check_environment() { +  if (!function_exists("mysql_query") && !function_exists("mysqli_set_charset")) { +    $errors[] = "Gallery 3 requires a MySQL database, but PHP doesn't have either the <a href=\"http://php.net/mysql\">MySQL</a> or the  <a href=\"http://php.net/mysqli\">MySQLi</a> extension."; +  } + +  if (!@preg_match("/^.$/u", utf8_encode("\xF1"))) { +    $errors[] = "PHP is missing <a href=\"http://php.net/pcre\">Perl-Compatible Regular Expression</a> support."; +  } + +  if (!(function_exists("spl_autoload_register"))) { +    $errors[] = "PHP is missing <a href=\"http://php.net/spl\">Standard PHP Library (SPL)</a> support"; +  } + +  if (!(class_exists("ReflectionClass"))) { +    $errors[] = "PHP is missing <a href=\"http://php.net/reflection\">reflection</a> support"; +  } + +  if (!(function_exists("filter_list"))) { +    $errors[] = "PHP is missing the <a href=\"http://php.net/filter\">filter extension</a>"; +  } + +  if (!(extension_loaded("iconv"))) { +    $errors[] = "PHP is missing the <a href=\"http://php.net/iconv\">iconv extension</a>"; +  } + +  if (!(extension_loaded("simplexml"))) { +    $errors[] = "PHP is missing the <a href=\"http://php.net/simplexml\">SimpleXML extension</a>"; +  } + +  if (extension_loaded("mbstring") && (ini_get("mbstring.func_overload") & MB_OVERLOAD_STRING)) { +    $errors[] = "The <a href=\"http://php.net/mbstring\">mbstring extension</a> is overloading PHP's native string functions.  Please disable it."; +  } + +  if (!function_exists("json_encode")) { +    $errors[] = "PHP is missing the <a href=\"http://php.net/manual/en/book.json.php\">JavaScript Object Notation (JSON) extension</a>.  Please install it."; +  } + +  return @$errors; +} +  } diff --git a/installer/web.php b/installer/web.php index eb0211a6..c46f072a 100644 --- a/installer/web.php +++ b/installer/web.php @@ -23,7 +23,7 @@ if (installer::already_installed()) {    switch (@$_GET["step"]) {    default:    case "welcome": -    $errors = check_environment(); +    $errors = installer::check_environment();      if ($errors) {        $content = render("environment_errors.html.php", array("errors" => $errors));      } else { @@ -80,43 +80,3 @@ function render($view, $args=array()) {  function oops($error) {    return render("oops.html.php", array("error" => $error));  } - -function check_environment() { -  if (!function_exists("mysql_query") && !function_exists("mysqli_set_charset")) { -    $errors[] = "Gallery 3 requires a MySQL database, but PHP doesn't have either the <a href=\"http://php.net/mysql\">MySQL</a> or the  <a href=\"http://php.net/mysqli\">MySQLi</a> extension."; -  } - -  if (!@preg_match("/^.$/u", utf8_encode("\xF1"))) { -    $errors[] = "PHP is missing <a href=\"http://php.net/pcre\">Perl-Compatible Regular Expression</a> support."; -  } - -  if (!(function_exists("spl_autoload_register"))) { -    $errors[] = "PHP is missing <a href=\"http://php.net/spl\">Standard PHP Library (SPL)</a> support"; -  } - -  if (!(class_exists("ReflectionClass"))) { -    $errors[] = "PHP is missing <a href=\"http://php.net/reflection\">reflection</a> support"; -  } - -  if (!(function_exists("filter_list"))) { -    $errors[] = "PHP is missing the <a href=\"http://php.net/filter\">filter extension</a>"; -  } - -  if (!(extension_loaded("iconv"))) { -    $errors[] = "PHP is missing the <a href=\"http://php.net/iconv\">iconv extension</a>"; -  } - -  if (!(extension_loaded("simplexml"))) { -    $errors[] = "PHP is missing the <a href=\"http://php.net/simplexml\">SimpleXML extension</a>"; -  } - -  if (extension_loaded("mbstring") && (ini_get("mbstring.func_overload") & MB_OVERLOAD_STRING)) { -    $errors[] = "The <a href=\"http://php.net/mbstring\">mbstring extension</a> is overloading PHP's native string functions.  Please disable it."; -  } - -  if (!function_exists("json_encode")) { -    $errors[] = "PHP is missing the <a href=\"http://php.net/manual/en/book.json.php\">JavaScript Object Notation (JSON) extension</a>.  Please install it."; -  } - -  return @$errors; -} | 
