|
|
@@ -5,14 +5,36 @@ define('BCRYPT_COST', 9);
|
|
|
Minz_Configuration::register('default_system', join_path(DATA_PATH, 'config.default.php'));
|
|
|
Minz_Configuration::register('default_user', join_path(USERS_PATH, '_', 'config.default.php'));
|
|
|
|
|
|
-function checkRequirements() {
|
|
|
+function checkRequirements($dbType = '') {
|
|
|
$php = version_compare(PHP_VERSION, '5.3.3') >= 0;
|
|
|
$minz = file_exists(join_path(LIB_PATH, 'Minz'));
|
|
|
$curl = extension_loaded('curl');
|
|
|
$pdo_mysql = extension_loaded('pdo_mysql');
|
|
|
$pdo_sqlite = extension_loaded('pdo_sqlite');
|
|
|
$pdo_pgsql = extension_loaded('pdo_pgsql');
|
|
|
- $pdo = $pdo_mysql || $pdo_sqlite || $pdo_pgsql;
|
|
|
+ $message = '';
|
|
|
+ switch ($dbType) {
|
|
|
+ case 'mysql':
|
|
|
+ $pdo_sqlite = $pdo_pgsql = true;
|
|
|
+ $pdo = $pdo_mysql;
|
|
|
+ break;
|
|
|
+ case 'sqlite':
|
|
|
+ $pdo_mysql = $pdo_pgsql = true;
|
|
|
+ $pdo = $pdo_sqlite;
|
|
|
+ break;
|
|
|
+ case 'pgsql':
|
|
|
+ $pdo_mysql = $pdo_sqlite = true;
|
|
|
+ $pdo = $pdo_pgsql;
|
|
|
+ break;
|
|
|
+ case '':
|
|
|
+ $pdo = $pdo_mysql || $pdo_sqlite || $pdo_pgsql;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ $pdo_mysql = $pdo_sqlite = $pdo_pgsql = true;
|
|
|
+ $pdo = false;
|
|
|
+ $message = 'Invalid database type!';
|
|
|
+ break;
|
|
|
+ }
|
|
|
$pcre = extension_loaded('pcre');
|
|
|
$ctype = extension_loaded('ctype');
|
|
|
$fileinfo = extension_loaded('fileinfo');
|
|
|
@@ -44,8 +66,9 @@ function checkRequirements() {
|
|
|
'users' => $users ? 'ok' : 'ko',
|
|
|
'favicons' => $favicons ? 'ok' : 'ko',
|
|
|
'http_referer' => $http_referer ? 'ok' : 'ko',
|
|
|
+ 'message' => $message ?: 'ok',
|
|
|
'all' => $php && $minz && $curl && $pdo && $pcre && $ctype && $fileinfo && $dom && $xml &&
|
|
|
- $data && $cache && $users && $favicons && $http_referer ?
|
|
|
+ $data && $cache && $users && $favicons && $http_referer && $message == '' ?
|
|
|
'ok' : 'ko'
|
|
|
);
|
|
|
}
|
|
|
@@ -77,7 +100,11 @@ function checkDb(&$dbOptions) {
|
|
|
break;
|
|
|
case 'sqlite':
|
|
|
include_once(APP_PATH . '/SQL/install.sql.sqlite.php');
|
|
|
- $dsn = 'sqlite:' . join_path(USERS_PATH, $dbOptions['default_user'], 'db.sqlite');
|
|
|
+ $path = join_path(USERS_PATH, $dbOptions['default_user']);
|
|
|
+ if (!is_dir($path)) {
|
|
|
+ mkdir($path);
|
|
|
+ }
|
|
|
+ $dsn = 'sqlite:' . join_path($path, 'db.sqlite');
|
|
|
$driver_options = array(
|
|
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
|
|
);
|