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; -} |