<?php
$failure = false;
?>
<!DOCTYPE html>
< html >
< head >
< title > Install< / title >
< / head >
< body >
< h1 > Installation check< / h1 >
<?php
// PDO
$ext = get_loaded_extensions();
$msg = '< p > PDO database interface: < span style = "color:%s" > %s< / span > '."< / p > \n";
$failure = ! in_array('PDO', $ext);
$res = $failure ? ['red', 'Error'] : ['green', 'OK'];
echo vsprintf($msg, $res);
// config file
if (! $failure) {
$conffile = '../config.php';
$perms = fileperms($conffile);
if ($perms & 0x07) {
echo '< p > Config file world readable: < span style = "color:red" > Error< / span > ', "< / p > \n";
}
if ($perms & 0x10) {
echo '< p > Config file writeable by webserver: < span style = "color:red" > Error< / span > ', "< / p > \n";
}
$msg = '< p > Read config file: < span style = "color:%s" > %s< / span > '."< / p > \n";
$failure = (! include($conffile));
$res = $failure ? ['red', 'Error'] : ['green', 'OK'];
echo vsprintf($msg, $res);
} else {
echo "< p > Configfile correct?< / p > ";
}
// Database connection
if (! $failure) {
try {
$dbh = new PDO("mysql:host=$config_mysql_host", $config_mysql_username, $config_mysql_password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
$details = "< pre > " . $e->getMessage() . "< / pre > \n";
$failure = true;
}
$msg = '< p > Database connection: < span style = "color:%s" > %s< / span > '."< / p > \n";
$res = $failure ? ['red', 'Error'] : ['green', 'OK'];
echo vsprintf($msg, $res);
if ($failure) {
echo $details;
}
} else {
echo "< p > Database connection available?< / p > \n";
}
// Ipreg database exists
if (! $failure) {
$sql = "SELECT SCHEMA_NAME FROM
INFORMATION_SCHEMA.SCHEMATA
WHERE SCHEMA_NAME=?";
$sth = $dbh->prepare($sql);
$sth->execute([$config_mysql_dbname]);
$failure = ! $sth->fetchColumn();
$msg = '< p > Database exists: < span style = "color:%s" > %s< / span > '."< / p > \n";
$res = $failure ? ['red', 'Error'] : ['green', 'OK'];
echo vsprintf($msg, $res);
$dbh->query("USE $config_mysql_dbname");
} else {
echo "< p > Database available?< / p > \n";
}
?>
< h2 > Rights< / h2 >
<?php
// Admin-user?
if (! $failure) {
$admincount = 0;
// Admin count
$sql = "SELECT user_id FROM user WHERE FIND_IN_SET('admin',user_role)>0";
$sth = $dbh->query($sql);
$adminlist = $sth->fetchAll(PDO::FETCH_ASSOC);
$admincount = count($adminlist);
if ($admincount == 0) {
echo '< p > No admin user exists: < span style = "color:red" > Error< / span > '."< / p > \n";
}
// Default admin
$sql = "SELECT user_pass FROM user WHERE user_name='admin' AND FIND_IN_SET('admin',user_role)>0";
$sth = $dbh->query($sql);
if ($rec = $sth->fetchColumn()) {
// Check default password
if ($rec == '$2y$10$HTs0lSaFrfr.q4Gmy5zWfeDg3jhYZkqEGZEnDkMiHZ641nso38mt6') {
echo '< p > Password for default admin has not been changed: < span style = "color:orange" > Warning< / span > '."< / p > \n";
} else {
echo '< p > Default admin exists: < span style = "color:green" > OK< / span > '."< / p > \n";
}
} else {
echo "< p > Default admin does not exist.< / p > \n";
if ($admincount > 0) {
echo '< p > There are more admin accounts: < span style = "color:green" > OK< / span > ', "< / p > \n";
}
}
} else {
echo "< p > Administrative user available?< / p > \n";
}
// Smarty
$compiledir = '../tpl_c';
$failure = ! is_writeable($compiledir);
$msg = '< p > Smarty compile directory writable: < span style = "color:%s" > %s< / span > '."< / p > \n";
$res = $failure ? ['red', 'Error'] : ['green', 'OK'];
echo vsprintf($msg, $res);
?>
< h2 > Summary< / h2 >
< p > If everything here checks ok the installation directory < tt > install< / tt >
should be removed.< / p >
< / body >
< / html >