summaryrefslogtreecommitdiff
path: root/app/check_setup.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/check_setup.php')
-rw-r--r--app/check_setup.php27
1 files changed, 21 insertions, 6 deletions
diff --git a/app/check_setup.php b/app/check_setup.php
index be52a718..eec63ed8 100644
--- a/app/check_setup.php
+++ b/app/check_setup.php
@@ -19,14 +19,29 @@ if (version_compare(PHP_VERSION, '5.4.0', '<')) {
}
}
-// Check extension: PDO
-if (! extension_loaded('pdo_sqlite') && ! extension_loaded('pdo_mysql') && ! extension_loaded('pdo_pgsql')) {
- throw new Exception('PHP extension required: pdo_sqlite or pdo_mysql or pdo_pgsql');
+// Check data folder if sqlite
+if (DB_DRIVER === 'sqlite' && ! is_writable('data')) {
+ throw new Exception('The directory "data" must be writeable by your web server user');
}
-// Check extension: mbstring
-if (! extension_loaded('mbstring')) {
- throw new Exception('PHP extension required: mbstring');
+// Check PDO extensions
+if (DB_DRIVER === 'sqlite' && ! extension_loaded('pdo_sqlite')) {
+ throw new Exception('PHP extension required: "pdo_sqlite"');
+}
+
+if (DB_DRIVER === 'mysql' && ! extension_loaded('pdo_mysql')) {
+ throw new Exception('PHP extension required: "pdo_mysql"');
+}
+
+if (DB_DRIVER === 'postgres' && ! extension_loaded('pdo_pgsql')) {
+ throw new Exception('PHP extension required: "pdo_pgsql"');
+}
+
+// Check other extensions
+foreach (array('gd', 'mbstring', 'hash', 'openssl', 'json', 'hash', 'ctype', 'filter', 'session') as $ext) {
+ if (! extension_loaded($ext)) {
+ throw new Exception('PHP extension required: "'.$ext.'"');
+ }
}
// Fix wrong value for arg_separator.output, used by the function http_build_query()