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 MySQL or the MySQLi extension.";
+ }
+
+ if (!@preg_match("/^.$/u", utf8_encode("\xF1"))) {
+ $errors[] = "PHP is missing Perl-Compatible Regular Expression support.";
+ }
+
+ if (!(function_exists("spl_autoload_register"))) {
+ $errors[] = "PHP is missing Standard PHP Library (SPL) support";
+ }
+
+ if (!(class_exists("ReflectionClass"))) {
+ $errors[] = "PHP is missing reflection support";
+ }
+
+ if (!(function_exists("filter_list"))) {
+ $errors[] = "PHP is missing the filter extension";
+ }
+
+ if (!(extension_loaded("iconv"))) {
+ $errors[] = "PHP is missing the iconv extension";
+ }
+
+ if (!(extension_loaded("simplexml"))) {
+ $errors[] = "PHP is missing the SimpleXML extension";
+ }
+
+ if (extension_loaded("mbstring") && (ini_get("mbstring.func_overload") & MB_OVERLOAD_STRING)) {
+ $errors[] = "The mbstring extension is overloading PHP's native string functions. Please disable it.";
+ }
+
+ if (!function_exists("json_encode")) {
+ $errors[] = "PHP is missing the JavaScript Object Notation (JSON) extension. 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 MySQL or the MySQLi extension.";
- }
-
- if (!@preg_match("/^.$/u", utf8_encode("\xF1"))) {
- $errors[] = "PHP is missing Perl-Compatible Regular Expression support.";
- }
-
- if (!(function_exists("spl_autoload_register"))) {
- $errors[] = "PHP is missing Standard PHP Library (SPL) support";
- }
-
- if (!(class_exists("ReflectionClass"))) {
- $errors[] = "PHP is missing reflection support";
- }
-
- if (!(function_exists("filter_list"))) {
- $errors[] = "PHP is missing the filter extension";
- }
-
- if (!(extension_loaded("iconv"))) {
- $errors[] = "PHP is missing the iconv extension";
- }
-
- if (!(extension_loaded("simplexml"))) {
- $errors[] = "PHP is missing the SimpleXML extension";
- }
-
- if (extension_loaded("mbstring") && (ini_get("mbstring.func_overload") & MB_OVERLOAD_STRING)) {
- $errors[] = "The mbstring extension is overloading PHP's native string functions. Please disable it.";
- }
-
- if (!function_exists("json_encode")) {
- $errors[] = "PHP is missing the JavaScript Object Notation (JSON) extension. Please install it.";
- }
-
- return @$errors;
-}